Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 SAI
Holders
48
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,050,699.233426503 SAIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
SherlockAI
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-03-15 */ /* Welcome to Sherlock, the cutting-edge cryptocurrency project designed to revolutionize the way you interact with your digital assets. At the heart of Sherlock lies its flagship feature: the Sherlock bot. This intelligent bot serves as your top-end wallet analyzer, offering unparalleled insights into your cryptocurrency holdings. Telegram : https://t.me/SherlockAiERC Website : https://sherlockerc20.com Telegram Bot : t.me/SherlockTokenBot **/ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract SherlockAI is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "SherlockAI"; string private constant _symbol = "SAI"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 100000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _MFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 20; uint256 private _MFeeOnSell = 0; uint256 private _taxFeeOnSell = 20; //Original Fee uint256 private _MFee = _MFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousMFee = _MFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x6d0b6fE91Dad8b035255EA4834eD4b54eAB5A689); address payable private _marketingAddress = payable(0x6d0b6fE91Dad8b035255EA4834eD4b54eAB5A689); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = _tTotal; uint256 public _maxWalletSize = _tTotal * 2 / 100; uint256 public _swapTokensAtAmount = _tTotal / 1000; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_MFee == 0 && _taxFee == 0) return; _previousMFee = _MFee; _previoustaxFee = _taxFee; _MFee = 0; _taxFee = 0; } function restoreAllFee() private { _MFee = _previousMFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _swapTokensAtAmount*8) { contractTokenBalance = _swapTokensAtAmount*8; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 80000000000000000) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _MFee = _MFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _MFee = _MFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _marketingAddress.transfer(amount); } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _MFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 MFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(MFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 MFeeOnBuy, uint256 MFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { _MFeeOnBuy = MFeeOnBuy; _MFeeOnSell = MFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; uint256 totalFee = _MFeeOnBuy+_MFeeOnSell+_taxFeeOnBuy+_taxFeeOnSell; require (totalFee <= 25,"Total Fees cannot be more than 25%"); } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = _tTotal*maxTxAmount/100; require (_maxTxAmount>= _tTotal/100); } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = _tTotal*maxWalletSize/100; require (_maxWalletSize>= _tTotal/100); } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } function updateMarketingAddress(address _newmarketingAddress) public onlyOwner { _marketingAddress = payable(_newmarketingAddress); } }
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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"MFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"MFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_newmarketingAddress","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405267016345785d8a00005f196200001b91906200072c565b5f1962000029919062000790565b6006555f60085560146009555f600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f55736d0b6fe91dad8b035255ea4834ed4b54eab5a68960125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736d0b6fe91dad8b035255ea4834ed4b54eab5a68960135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff0219169083151502179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555067016345785d8a00006016556064600267016345785d8a0000620001729190620007ca565b6200017e919062000814565b6017556103e867016345785d8a000062000199919062000814565b601855348015620001a8575f80fd5b505f620001ba620006c860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f6200026c620006c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003719190620008b0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003fd9190620008b0565b6040518363ffffffff1660e01b81526004016200041c929190620008f1565b6020604051808303815f875af115801562000439573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200045f9190620008b0565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004b3620006cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000653620006c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a0000604051620006b991906200092d565b60405180910390a35062000948565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200073882620006f6565b91506200074583620006f6565b925082620007585762000757620006ff565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200079c82620006f6565b9150620007a983620006f6565b9250828203905081811115620007c457620007c362000763565b5b92915050565b5f620007d682620006f6565b9150620007e383620006f6565b9250828202620007f381620006f6565b915082820484148315176200080d576200080c62000763565b5b5092915050565b5f6200082082620006f6565b91506200082d83620006f6565b92508262000840576200083f620006ff565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200087a826200084f565b9050919050565b6200088c816200086e565b811462000897575f80fd5b50565b5f81519050620008aa8162000881565b92915050565b5f60208284031215620008c857620008c76200084b565b5b5f620008d7848285016200089a565b91505092915050565b620008eb816200086e565b82525050565b5f604082019050620009065f830185620008e0565b620009156020830184620008e0565b9392505050565b6200092781620006f6565b82525050565b5f602082019050620009425f8301846200091c565b92915050565b613cd180620009565f395ff3fe6080604052600436106101cf575f3560e01c806374010ece116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638da5cb5b116100d05780638da5cb5b146104e45780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b806374010ece146104565780637d1db4a51461047e5780637f2feddc146104a8576101d6565b80632fd689e31161016e5780636d8aa8f81161013d5780636d8aa8f8146103c65780636fc3eaec146103ee57806370a0823114610404578063715018a614610440576101d6565b80632fd689e314610320578063313ce5671461034a57806349bd5a5e146103745780636b9990531461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd146102925780632369bf83146102bc57806323b872dd146102e4576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612cde565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d9f565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612df2565b610850565b60405161025f9190612e4a565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612ebe565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612ee6565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612eff565b6108a1565b005b3480156102ef575f80fd5b5061030a60048036038101906103059190612f2a565b610978565b6040516103179190612e4a565b60405180910390f35b34801561032b575f80fd5b50610334610a4c565b6040516103419190612ee6565b60405180910390f35b348015610355575f80fd5b5061035e610a52565b60405161036b9190612f95565b60405180910390f35b34801561037f575f80fd5b50610388610a5a565b6040516103959190612fbd565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190612eff565b610a7f565b005b3480156103d1575f80fd5b506103ec60048036038101906103e79190613000565b610b6a565b005b3480156103f9575f80fd5b50610402610c1b565b005b34801561040f575f80fd5b5061042a60048036038101906104259190612eff565b610c2b565b6040516104379190612ee6565b60405180910390f35b34801561044b575f80fd5b50610454610c79565b005b348015610461575f80fd5b5061047c6004803603810190610477919061302b565b610dc7565b005b348015610489575f80fd5b50610492610ea6565b60405161049f9190612ee6565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612eff565b610eac565b6040516104db9190612ee6565b60405180910390f35b3480156104ef575f80fd5b506104f8610ec1565b6040516105059190612fbd565b60405180910390f35b348015610519575f80fd5b50610522610ee8565b60405161052f9190612ee6565b60405180910390f35b348015610543575f80fd5b5061054c610eee565b6040516105599190612d9f565b60405180910390f35b34801561056d575f80fd5b506105886004803603810190610583919061302b565b610f2b565b005b348015610595575f80fd5b506105b060048036038101906105ab9190613056565b610fc9565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612df2565b6110f1565b6040516105e59190612e4a565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612eff565b61110e565b6040516106219190612e4a565b60405180910390f35b348015610635575f80fd5b5061063e61112b565b005b34801561064b575f80fd5b5061066660048036038101906106619190613113565b611200565b005b348015610673575f80fd5b5061068e60048036038101906106899190613170565b61132f565b60405161069b9190612ee6565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c5919061302b565b6113b1565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612eff565b611490565b005b6106fc61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f906131f8565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa613216565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600a81526020017f536865726c6f636b414900000000000000000000000000000000000000000000815250905090565b5f61086361085c61164d565b8484611654565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b6108a961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c906131f8565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610984848484611817565b610a418461099061164d565b610a3c85604051806060016040528060288152602001613c746028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f361164d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120979092919063ffffffff16565b611654565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8761164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a906131f8565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b7261164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906131f8565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b5f479050610c28816120f9565b50565b5f610c7260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612161565b9050919050565b610c8161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906131f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dcf61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e52906131f8565b60405180910390fd5b60648167016345785d8a0000610e719190613270565b610e7b91906132de565b601681905550606467016345785d8a0000610e9691906132de565b6016541015610ea3575f80fd5b50565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b610f3361164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb6906131f8565b60405180910390fd5b8060188190555050565b610fd161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906131f8565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055505f600b54600954600a54600854611090919061330e565b61109a919061330e565b6110a4919061330e565b905060198111156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e1906133b1565b60405180910390fd5b5050505050565b5f6111046110fd61164d565b8484611817565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116b61164d565b73ffffffffffffffffffffffffffffffffffffffff1614806111e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c861164d565b73ffffffffffffffffffffffffffffffffffffffff16145b6111e8575f80fd5b5f6111f230610c2b565b90506111fd816121cd565b50565b61120861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b906131f8565b60405180910390fd5b5f5b83839050811015611329578160055f8686858181106112b8576112b7613216565b5b90506020020160208101906112cd9190612eff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611296565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113b961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c906131f8565b60405180910390fd5b60648167016345785d8a000061145b9190613270565b61146591906132de565b601781905550606467016345785d8a000061148091906132de565b601754101561148d575f80fd5b50565b61149861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b906131f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611592576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115899061343f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906134cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117279061355b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180a9190612ee6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906135e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90613677565b60405180910390fd5b5f8111611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613705565b60405180910390fd5b61193d610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ab575061197b610ec1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611da457601560149054906101000a900460ff16611a3a576119cc610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613793565b60405180910390fd5b5b601654811115611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906137fb565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b1d575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390613889565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c085760175481611bbd84610c2b565b611bc7919061330e565b10611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe90613917565b60405180910390fd5b5b5f611c1230610c2b565b90505f60185482101590506008601854611c2c9190613270565b8210611c44576008601854611c419190613270565b91505b808015611c5c575060158054906101000a900460ff16155b8015611cb5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccd5750601560169054906101000a900460ff165b8015611d20575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d73575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da157611d81826121cd565b5f47905067011c37937e080000811115611d9f57611d9e476120f9565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e44575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ef4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f02575f9050612085565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fab575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc357600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600a54600c81905550600b54600d819055505b5b61209184848484612436565b50505050565b5f8383111582906120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59190612d9f565b60405180910390fd5b505f83856120ec9190613935565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215d573d5f803e3d5ffd5b5050565b5f6006548211156121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219e906139d8565b60405180910390fd5b5f6121b0612463565b90506121c5818461248c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561220357612202612b48565b5b6040519080825280602002602001820160405280156122315781602001602082028036833780820191505090505b50905030815f8151811061224857612247613216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123109190613a0a565b8160018151811061232457612323613216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611654565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123ec959493929190613b25565b5f604051808303815f87803b158015612403575f80fd5b505af1158015612415573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b80612444576124436124d5565b5b61244f84848461250e565b8061245d5761245c6126ce565b5b50505050565b5f805f61246e6126e2565b91509150612485818361248c90919063ffffffff16565b9250505090565b5f6124cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061273e565b905092915050565b5f600c541480156124e757505f600d54145b61250c57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061251d8761279f565b9550955095509550955095506125798660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127ff90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061260a8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612654816128a5565b61265e848361295c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126bb9190612ee6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061271367016345785d8a000060065461248c90919063ffffffff16565b8210156127315760065467016345785d8a000093509350505061273a565b81819350935050505b9091565b5f8083118290612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b9190612d9f565b60405180910390fd5b505f838561279291906132de565b9050809150509392505050565b5f805f805f805f805f6127b78a600c54600d54612996565b9250925092505f6127c6612463565b90505f805f6127d78e878787612a28565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61284083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612097565b905092915050565b5f808284612856919061330e565b90508381101561289b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289290613bc7565b60405180910390fd5b8091505092915050565b5f6128ae612463565b90505f6128c48284612aac90919063ffffffff16565b90506129168160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612971826006546127ff90919063ffffffff16565b60068190555061298c8160075461284890919063ffffffff16565b6007819055505050565b5f805f806129c060646129b2888a612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f6129e960646129db888b612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f612a1182612a03858c6127ff90919063ffffffff16565b6127ff90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a3f8589612aac90919063ffffffff16565b90505f612a558689612aac90919063ffffffff16565b90505f612a6b8789612aac90919063ffffffff16565b90505f612a9382612a8585876127ff90919063ffffffff16565b6127ff90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612abc575f9050612b1d565b5f8284612ac99190613270565b9050828482612ad891906132de565b14612b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0f90613c55565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b7e82612b38565b810181811067ffffffffffffffff82111715612b9d57612b9c612b48565b5b80604052505050565b5f612baf612b23565b9050612bbb8282612b75565b919050565b5f67ffffffffffffffff821115612bda57612bd9612b48565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c1882612bef565b9050919050565b612c2881612c0e565b8114612c32575f80fd5b50565b5f81359050612c4381612c1f565b92915050565b5f612c5b612c5684612bc0565b612ba6565b90508083825260208201905060208402830185811115612c7e57612c7d612beb565b5b835b81811015612ca75780612c938882612c35565b845260208401935050602081019050612c80565b5050509392505050565b5f82601f830112612cc557612cc4612b34565b5b8135612cd5848260208601612c49565b91505092915050565b5f60208284031215612cf357612cf2612b2c565b5b5f82013567ffffffffffffffff811115612d1057612d0f612b30565b5b612d1c84828501612cb1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d5c578082015181840152602081019050612d41565b5f8484015250505050565b5f612d7182612d25565b612d7b8185612d2f565b9350612d8b818560208601612d3f565b612d9481612b38565b840191505092915050565b5f6020820190508181035f830152612db78184612d67565b905092915050565b5f819050919050565b612dd181612dbf565b8114612ddb575f80fd5b50565b5f81359050612dec81612dc8565b92915050565b5f8060408385031215612e0857612e07612b2c565b5b5f612e1585828601612c35565b9250506020612e2685828601612dde565b9150509250929050565b5f8115159050919050565b612e4481612e30565b82525050565b5f602082019050612e5d5f830184612e3b565b92915050565b5f819050919050565b5f612e86612e81612e7c84612bef565b612e63565b612bef565b9050919050565b5f612e9782612e6c565b9050919050565b5f612ea882612e8d565b9050919050565b612eb881612e9e565b82525050565b5f602082019050612ed15f830184612eaf565b92915050565b612ee081612dbf565b82525050565b5f602082019050612ef95f830184612ed7565b92915050565b5f60208284031215612f1457612f13612b2c565b5b5f612f2184828501612c35565b91505092915050565b5f805f60608486031215612f4157612f40612b2c565b5b5f612f4e86828701612c35565b9350506020612f5f86828701612c35565b9250506040612f7086828701612dde565b9150509250925092565b5f60ff82169050919050565b612f8f81612f7a565b82525050565b5f602082019050612fa85f830184612f86565b92915050565b612fb781612c0e565b82525050565b5f602082019050612fd05f830184612fae565b92915050565b612fdf81612e30565b8114612fe9575f80fd5b50565b5f81359050612ffa81612fd6565b92915050565b5f6020828403121561301557613014612b2c565b5b5f61302284828501612fec565b91505092915050565b5f602082840312156130405761303f612b2c565b5b5f61304d84828501612dde565b91505092915050565b5f805f806080858703121561306e5761306d612b2c565b5b5f61307b87828801612dde565b945050602061308c87828801612dde565b935050604061309d87828801612dde565b92505060606130ae87828801612dde565b91505092959194509250565b5f80fd5b5f8083601f8401126130d3576130d2612b34565b5b8235905067ffffffffffffffff8111156130f0576130ef6130ba565b5b60208301915083602082028301111561310c5761310b612beb565b5b9250929050565b5f805f6040848603121561312a57613129612b2c565b5b5f84013567ffffffffffffffff81111561314757613146612b30565b5b613153868287016130be565b9350935050602061316686828701612fec565b9150509250925092565b5f806040838503121561318657613185612b2c565b5b5f61319385828601612c35565b92505060206131a485828601612c35565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131e2602083612d2f565b91506131ed826131ae565b602082019050919050565b5f6020820190508181035f83015261320f816131d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61327a82612dbf565b915061328583612dbf565b925082820261329381612dbf565b915082820484148315176132aa576132a9613243565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132e882612dbf565b91506132f383612dbf565b925082613303576133026132b1565b5b828204905092915050565b5f61331882612dbf565b915061332383612dbf565b925082820190508082111561333b5761333a613243565b5b92915050565b7f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e20325f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f61339b602283612d2f565b91506133a682613341565b604082019050919050565b5f6020820190508181035f8301526133c88161338f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613429602683612d2f565b9150613434826133cf565b604082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134b7602483612d2f565b91506134c28261345d565b604082019050919050565b5f6020820190508181035f8301526134e4816134ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613545602283612d2f565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135d3602583612d2f565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613661602383612d2f565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136ef602983612d2f565b91506136fa82613695565b604082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61377d603f83612d2f565b915061378882613723565b604082019050919050565b5f6020820190508181035f8301526137aa81613771565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137e5601c83612d2f565b91506137f0826137b1565b602082019050919050565b5f6020820190508181035f830152613812816137d9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613873602383612d2f565b915061387e82613819565b604082019050919050565b5f6020820190508181035f8301526138a081613867565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613901602383612d2f565b915061390c826138a7565b604082019050919050565b5f6020820190508181035f83015261392e816138f5565b9050919050565b5f61393f82612dbf565b915061394a83612dbf565b925082820390508181111561396257613961613243565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6139c2602a83612d2f565b91506139cd82613968565b604082019050919050565b5f6020820190508181035f8301526139ef816139b6565b9050919050565b5f81519050613a0481612c1f565b92915050565b5f60208284031215613a1f57613a1e612b2c565b5b5f613a2c848285016139f6565b91505092915050565b5f819050919050565b5f613a58613a53613a4e84613a35565b612e63565b612dbf565b9050919050565b613a6881613a3e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613aa081612c0e565b82525050565b5f613ab18383613a97565b60208301905092915050565b5f602082019050919050565b5f613ad382613a6e565b613add8185613a78565b9350613ae883613a88565b805f5b83811015613b18578151613aff8882613aa6565b9750613b0a83613abd565b925050600181019050613aeb565b5085935050505092915050565b5f60a082019050613b385f830188612ed7565b613b456020830187613a5f565b8181036040830152613b578186613ac9565b9050613b666060830185612fae565b613b736080830184612ed7565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613bb1601b83612d2f565b9150613bbc82613b7d565b602082019050919050565b5f6020820190508181035f830152613bde81613ba5565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3f602183612d2f565b9150613c4a82613be5565b604082019050919050565b5f6020820190508181035f830152613c6c81613c33565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ebe18e7aeb5766df5dfca76b18d12e68005a53f9fb3ebec1e6311b826a4d4eb64736f6c63430008180033
Deployed Bytecode
0x6080604052600436106101cf575f3560e01c806374010ece116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638da5cb5b116100d05780638da5cb5b146104e45780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b806374010ece146104565780637d1db4a51461047e5780637f2feddc146104a8576101d6565b80632fd689e31161016e5780636d8aa8f81161013d5780636d8aa8f8146103c65780636fc3eaec146103ee57806370a0823114610404578063715018a614610440576101d6565b80632fd689e314610320578063313ce5671461034a57806349bd5a5e146103745780636b9990531461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd146102925780632369bf83146102bc57806323b872dd146102e4576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612cde565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d9f565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612df2565b610850565b60405161025f9190612e4a565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612ebe565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612ee6565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612eff565b6108a1565b005b3480156102ef575f80fd5b5061030a60048036038101906103059190612f2a565b610978565b6040516103179190612e4a565b60405180910390f35b34801561032b575f80fd5b50610334610a4c565b6040516103419190612ee6565b60405180910390f35b348015610355575f80fd5b5061035e610a52565b60405161036b9190612f95565b60405180910390f35b34801561037f575f80fd5b50610388610a5a565b6040516103959190612fbd565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190612eff565b610a7f565b005b3480156103d1575f80fd5b506103ec60048036038101906103e79190613000565b610b6a565b005b3480156103f9575f80fd5b50610402610c1b565b005b34801561040f575f80fd5b5061042a60048036038101906104259190612eff565b610c2b565b6040516104379190612ee6565b60405180910390f35b34801561044b575f80fd5b50610454610c79565b005b348015610461575f80fd5b5061047c6004803603810190610477919061302b565b610dc7565b005b348015610489575f80fd5b50610492610ea6565b60405161049f9190612ee6565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612eff565b610eac565b6040516104db9190612ee6565b60405180910390f35b3480156104ef575f80fd5b506104f8610ec1565b6040516105059190612fbd565b60405180910390f35b348015610519575f80fd5b50610522610ee8565b60405161052f9190612ee6565b60405180910390f35b348015610543575f80fd5b5061054c610eee565b6040516105599190612d9f565b60405180910390f35b34801561056d575f80fd5b506105886004803603810190610583919061302b565b610f2b565b005b348015610595575f80fd5b506105b060048036038101906105ab9190613056565b610fc9565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612df2565b6110f1565b6040516105e59190612e4a565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612eff565b61110e565b6040516106219190612e4a565b60405180910390f35b348015610635575f80fd5b5061063e61112b565b005b34801561064b575f80fd5b5061066660048036038101906106619190613113565b611200565b005b348015610673575f80fd5b5061068e60048036038101906106899190613170565b61132f565b60405161069b9190612ee6565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c5919061302b565b6113b1565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612eff565b611490565b005b6106fc61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f906131f8565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa613216565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600a81526020017f536865726c6f636b414900000000000000000000000000000000000000000000815250905090565b5f61086361085c61164d565b8484611654565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b6108a961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c906131f8565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610984848484611817565b610a418461099061164d565b610a3c85604051806060016040528060288152602001613c746028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f361164d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120979092919063ffffffff16565b611654565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8761164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a906131f8565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b7261164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906131f8565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b5f479050610c28816120f9565b50565b5f610c7260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612161565b9050919050565b610c8161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906131f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dcf61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e52906131f8565b60405180910390fd5b60648167016345785d8a0000610e719190613270565b610e7b91906132de565b601681905550606467016345785d8a0000610e9691906132de565b6016541015610ea3575f80fd5b50565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600381526020017f5341490000000000000000000000000000000000000000000000000000000000815250905090565b610f3361164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb6906131f8565b60405180910390fd5b8060188190555050565b610fd161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906131f8565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055505f600b54600954600a54600854611090919061330e565b61109a919061330e565b6110a4919061330e565b905060198111156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e1906133b1565b60405180910390fd5b5050505050565b5f6111046110fd61164d565b8484611817565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116b61164d565b73ffffffffffffffffffffffffffffffffffffffff1614806111e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c861164d565b73ffffffffffffffffffffffffffffffffffffffff16145b6111e8575f80fd5b5f6111f230610c2b565b90506111fd816121cd565b50565b61120861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b906131f8565b60405180910390fd5b5f5b83839050811015611329578160055f8686858181106112b8576112b7613216565b5b90506020020160208101906112cd9190612eff565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611296565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113b961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c906131f8565b60405180910390fd5b60648167016345785d8a000061145b9190613270565b61146591906132de565b601781905550606467016345785d8a000061148091906132de565b601754101561148d575f80fd5b50565b61149861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b906131f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611592576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115899061343f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906134cd565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117279061355b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180a9190612ee6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906135e9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90613677565b60405180910390fd5b5f8111611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c90613705565b60405180910390fd5b61193d610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ab575061197b610ec1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611da457601560149054906101000a900460ff16611a3a576119cc610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613793565b60405180910390fd5b5b601654811115611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906137fb565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b1d575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5390613889565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c085760175481611bbd84610c2b565b611bc7919061330e565b10611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe90613917565b60405180910390fd5b5b5f611c1230610c2b565b90505f60185482101590506008601854611c2c9190613270565b8210611c44576008601854611c419190613270565b91505b808015611c5c575060158054906101000a900460ff16155b8015611cb5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccd5750601560169054906101000a900460ff165b8015611d20575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d73575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da157611d81826121cd565b5f47905067011c37937e080000811115611d9f57611d9e476120f9565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e44575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ef4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f02575f9050612085565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fab575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc357600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600a54600c81905550600b54600d819055505b5b61209184848484612436565b50505050565b5f8383111582906120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59190612d9f565b60405180910390fd5b505f83856120ec9190613935565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215d573d5f803e3d5ffd5b5050565b5f6006548211156121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219e906139d8565b60405180910390fd5b5f6121b0612463565b90506121c5818461248c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561220357612202612b48565b5b6040519080825280602002602001820160405280156122315781602001602082028036833780820191505090505b50905030815f8151811061224857612247613216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123109190613a0a565b8160018151811061232457612323613216565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611654565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123ec959493929190613b25565b5f604051808303815f87803b158015612403575f80fd5b505af1158015612415573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b80612444576124436124d5565b5b61244f84848461250e565b8061245d5761245c6126ce565b5b50505050565b5f805f61246e6126e2565b91509150612485818361248c90919063ffffffff16565b9250505090565b5f6124cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061273e565b905092915050565b5f600c541480156124e757505f600d54145b61250c57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061251d8761279f565b9550955095509550955095506125798660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127ff90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061260a8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612654816128a5565b61265e848361295c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126bb9190612ee6565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061271367016345785d8a000060065461248c90919063ffffffff16565b8210156127315760065467016345785d8a000093509350505061273a565b81819350935050505b9091565b5f8083118290612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b9190612d9f565b60405180910390fd5b505f838561279291906132de565b9050809150509392505050565b5f805f805f805f805f6127b78a600c54600d54612996565b9250925092505f6127c6612463565b90505f805f6127d78e878787612a28565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61284083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612097565b905092915050565b5f808284612856919061330e565b90508381101561289b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289290613bc7565b60405180910390fd5b8091505092915050565b5f6128ae612463565b90505f6128c48284612aac90919063ffffffff16565b90506129168160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612971826006546127ff90919063ffffffff16565b60068190555061298c8160075461284890919063ffffffff16565b6007819055505050565b5f805f806129c060646129b2888a612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f6129e960646129db888b612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f612a1182612a03858c6127ff90919063ffffffff16565b6127ff90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a3f8589612aac90919063ffffffff16565b90505f612a558689612aac90919063ffffffff16565b90505f612a6b8789612aac90919063ffffffff16565b90505f612a9382612a8585876127ff90919063ffffffff16565b6127ff90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612abc575f9050612b1d565b5f8284612ac99190613270565b9050828482612ad891906132de565b14612b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0f90613c55565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b7e82612b38565b810181811067ffffffffffffffff82111715612b9d57612b9c612b48565b5b80604052505050565b5f612baf612b23565b9050612bbb8282612b75565b919050565b5f67ffffffffffffffff821115612bda57612bd9612b48565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c1882612bef565b9050919050565b612c2881612c0e565b8114612c32575f80fd5b50565b5f81359050612c4381612c1f565b92915050565b5f612c5b612c5684612bc0565b612ba6565b90508083825260208201905060208402830185811115612c7e57612c7d612beb565b5b835b81811015612ca75780612c938882612c35565b845260208401935050602081019050612c80565b5050509392505050565b5f82601f830112612cc557612cc4612b34565b5b8135612cd5848260208601612c49565b91505092915050565b5f60208284031215612cf357612cf2612b2c565b5b5f82013567ffffffffffffffff811115612d1057612d0f612b30565b5b612d1c84828501612cb1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612d5c578082015181840152602081019050612d41565b5f8484015250505050565b5f612d7182612d25565b612d7b8185612d2f565b9350612d8b818560208601612d3f565b612d9481612b38565b840191505092915050565b5f6020820190508181035f830152612db78184612d67565b905092915050565b5f819050919050565b612dd181612dbf565b8114612ddb575f80fd5b50565b5f81359050612dec81612dc8565b92915050565b5f8060408385031215612e0857612e07612b2c565b5b5f612e1585828601612c35565b9250506020612e2685828601612dde565b9150509250929050565b5f8115159050919050565b612e4481612e30565b82525050565b5f602082019050612e5d5f830184612e3b565b92915050565b5f819050919050565b5f612e86612e81612e7c84612bef565b612e63565b612bef565b9050919050565b5f612e9782612e6c565b9050919050565b5f612ea882612e8d565b9050919050565b612eb881612e9e565b82525050565b5f602082019050612ed15f830184612eaf565b92915050565b612ee081612dbf565b82525050565b5f602082019050612ef95f830184612ed7565b92915050565b5f60208284031215612f1457612f13612b2c565b5b5f612f2184828501612c35565b91505092915050565b5f805f60608486031215612f4157612f40612b2c565b5b5f612f4e86828701612c35565b9350506020612f5f86828701612c35565b9250506040612f7086828701612dde565b9150509250925092565b5f60ff82169050919050565b612f8f81612f7a565b82525050565b5f602082019050612fa85f830184612f86565b92915050565b612fb781612c0e565b82525050565b5f602082019050612fd05f830184612fae565b92915050565b612fdf81612e30565b8114612fe9575f80fd5b50565b5f81359050612ffa81612fd6565b92915050565b5f6020828403121561301557613014612b2c565b5b5f61302284828501612fec565b91505092915050565b5f602082840312156130405761303f612b2c565b5b5f61304d84828501612dde565b91505092915050565b5f805f806080858703121561306e5761306d612b2c565b5b5f61307b87828801612dde565b945050602061308c87828801612dde565b935050604061309d87828801612dde565b92505060606130ae87828801612dde565b91505092959194509250565b5f80fd5b5f8083601f8401126130d3576130d2612b34565b5b8235905067ffffffffffffffff8111156130f0576130ef6130ba565b5b60208301915083602082028301111561310c5761310b612beb565b5b9250929050565b5f805f6040848603121561312a57613129612b2c565b5b5f84013567ffffffffffffffff81111561314757613146612b30565b5b613153868287016130be565b9350935050602061316686828701612fec565b9150509250925092565b5f806040838503121561318657613185612b2c565b5b5f61319385828601612c35565b92505060206131a485828601612c35565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131e2602083612d2f565b91506131ed826131ae565b602082019050919050565b5f6020820190508181035f83015261320f816131d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61327a82612dbf565b915061328583612dbf565b925082820261329381612dbf565b915082820484148315176132aa576132a9613243565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132e882612dbf565b91506132f383612dbf565b925082613303576133026132b1565b5b828204905092915050565b5f61331882612dbf565b915061332383612dbf565b925082820190508082111561333b5761333a613243565b5b92915050565b7f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e20325f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f61339b602283612d2f565b91506133a682613341565b604082019050919050565b5f6020820190508181035f8301526133c88161338f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613429602683612d2f565b9150613434826133cf565b604082019050919050565b5f6020820190508181035f8301526134568161341d565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134b7602483612d2f565b91506134c28261345d565b604082019050919050565b5f6020820190508181035f8301526134e4816134ab565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613545602283612d2f565b9150613550826134eb565b604082019050919050565b5f6020820190508181035f83015261357281613539565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135d3602583612d2f565b91506135de82613579565b604082019050919050565b5f6020820190508181035f830152613600816135c7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613661602383612d2f565b915061366c82613607565b604082019050919050565b5f6020820190508181035f83015261368e81613655565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136ef602983612d2f565b91506136fa82613695565b604082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61377d603f83612d2f565b915061378882613723565b604082019050919050565b5f6020820190508181035f8301526137aa81613771565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137e5601c83612d2f565b91506137f0826137b1565b602082019050919050565b5f6020820190508181035f830152613812816137d9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613873602383612d2f565b915061387e82613819565b604082019050919050565b5f6020820190508181035f8301526138a081613867565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613901602383612d2f565b915061390c826138a7565b604082019050919050565b5f6020820190508181035f83015261392e816138f5565b9050919050565b5f61393f82612dbf565b915061394a83612dbf565b925082820390508181111561396257613961613243565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6139c2602a83612d2f565b91506139cd82613968565b604082019050919050565b5f6020820190508181035f8301526139ef816139b6565b9050919050565b5f81519050613a0481612c1f565b92915050565b5f60208284031215613a1f57613a1e612b2c565b5b5f613a2c848285016139f6565b91505092915050565b5f819050919050565b5f613a58613a53613a4e84613a35565b612e63565b612dbf565b9050919050565b613a6881613a3e565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613aa081612c0e565b82525050565b5f613ab18383613a97565b60208301905092915050565b5f602082019050919050565b5f613ad382613a6e565b613add8185613a78565b9350613ae883613a88565b805f5b83811015613b18578151613aff8882613aa6565b9750613b0a83613abd565b925050600181019050613aeb565b5085935050505092915050565b5f60a082019050613b385f830188612ed7565b613b456020830187613a5f565b8181036040830152613b578186613ac9565b9050613b666060830185612fae565b613b736080830184612ed7565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613bb1601b83612d2f565b9150613bbc82613b7d565b602082019050919050565b5f6020820190508181035f830152613bde81613ba5565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c3f602183612d2f565b9150613c4a82613be5565b604082019050919050565b5f6020820190508181035f830152613c6c81613c33565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207ebe18e7aeb5766df5dfca76b18d12e68005a53f9fb3ebec1e6311b826a4d4eb64736f6c63430008180033
Deployed Bytecode Sourcemap
4534:13656:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12970:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7005:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7930:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5855:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7282:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18036:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8131:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6152:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7191:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5903:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13147:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17294:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12819:143;;;;;;;;;;;;;:::i;:::-;;7385:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2021:148;;;;;;;;;;;;;:::i;:::-;;17434:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6052:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5597:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1807:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7096:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17103:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16633:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7531:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5559:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12575:236;;;;;;;;;;;;;:::i;:::-;;17793:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7738:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17609:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2177:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12970:169;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13046:9:::1;13041:91;13065:5;:12;13061:1;:16;13041:91;;;13116:4;13099;:14;13104:5;13110:1;13104:8;;;;;;;;:::i;:::-;;;;;;;;13099:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13079:3;;;;;;;13041:91;;;;12970:169:::0;:::o;7005:83::-;7042:13;7075:5;;;;;;;;;;;;;;;;;7068:12;;7005:83;:::o;7930:193::-;8032:4;8054:39;8063:12;:10;:12::i;:::-;8077:7;8086:6;8054:8;:39::i;:::-;8111:4;8104:11;;7930:193;;;;:::o;5855:41::-;;;;;;;;;;;;;:::o;7282:95::-;7335:7;5084:17;7355:14;;7282:95;:::o;18036:147::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18154:20:::1;18126:17;;:49;;;;;;;;;;;;;;;;;;18036:147:::0;:::o;8131:446::-;8263:4;8280:36;8290:6;8298:9;8309:6;8280:9;:36::i;:::-;8327:220;8350:6;8371:12;:10;:12::i;:::-;8398:138;8454:6;8398:138;;;;;;;;;;;;;;;;;:11;:19;8410:6;8398:19;;;;;;;;;;;;;;;:33;8418:12;:10;:12::i;:::-;8398:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8327:8;:220::i;:::-;8565:4;8558:11;;8131:446;;;;;:::o;6152:51::-;;;;:::o;7191:83::-;7232:5;4758:1;7250:16;;7191:83;:::o;5903:28::-;;;;;;;;;;;;;:::o;13147:92::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13226:5:::1;13211:4;:12;13216:6;13211:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13147:92:::0;:::o;17294:101::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17375:12:::1;17361:11;;:26;;;;;;;;;;;;;;;;;;17294:101:::0;:::o;12819:143::-;12861:26;12890:21;12861:50;;12922:32;12935:18;12922:12;:32::i;:::-;12850:112;12819:143::o;7385:138::-;7451:7;7478:37;7498:7;:16;7506:7;7498:16;;;;;;;;;;;;;;;;7478:19;:37::i;:::-;7471:44;;7385:138;;;:::o;2021:148::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2128:1:::1;2091:40;;2112:6;::::0;::::1;;;;;;;;2091:40;;;;;;;;;;;;2159:1;2142:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2021:148::o:0;17434:167::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17543:3:::1;17531:11;5084:17;17523:19;;;;:::i;:::-;:23;;;;:::i;:::-;17508:12;:38;;;;17589:3;5084:17;17581:11;;;;:::i;:::-;17566:12;;:26;;17557:36;;;::::0;::::1;;17434:167:::0;:::o;6052:37::-;;;;:::o;5597:43::-;;;;;;;;;;;;;;;;;:::o;1807:79::-;1845:7;1872:6;;;;;;;;;;;1865:13;;1807:79;:::o;6096:49::-;;;;:::o;7096:87::-;7135:13;7168:7;;;;;;;;;;;;;;;;;7161:14;;7096:87;:::o;17103:139::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17216:18:::1;17194:19;:40;;;;17103:139:::0;:::o;16633:418::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16772:9:::1;16759:10;:22;;;;16806:10;16792:11;:24;;;;16842:11;16827:12;:26;;;;16880:12;16864:13;:28;;;;16903:16;16958:13;;16945:12;;16933:11;;16922:10;;:22;;;;:::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;16903:68;;17003:2;16991:8;:14;;16982:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16748:303;16633:418:::0;;;;:::o;7531:199::-;7636:4;7658:42;7668:12;:10;:12::i;:::-;7682:9;7693:6;7658:9;:42::i;:::-;7718:4;7711:11;;7531:199;;;;:::o;5559:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12575:236::-;12641:19;;;;;;;;;;;12625:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12680:17;;;;;;;;;;;12664:33;;:12;:10;:12::i;:::-;:33;;;12625:72;12617:81;;;;;;12709:23;12735:24;12753:4;12735:9;:24::i;:::-;12709:50;;12770:33;12787:15;12770:16;:33::i;:::-;12606:205;12575:236::o;17793:234::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17910:9:::1;17906:114;17929:8;;:15;;17925:1;:19;17906:114;;;18000:8;17966:18;:31;17985:8;;17994:1;17985:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17966:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17946:3;;;;;;;17906:114;;;;17793:234:::0;;;:::o;7738:184::-;7855:7;7887:11;:18;7899:5;7887:18;;;;;;;;;;;;;;;:27;7906:7;7887:27;;;;;;;;;;;;;;;;7880:34;;7738:184;;;;:::o;17609:176::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17725:3:::1;17711:13;5084:17;17703:21;;;;:::i;:::-;:25;;;;:::i;:::-;17686:14;:42;;;;17773:3;5084:17;17765:11;;;;:::i;:::-;17748:14;;:28;;17739:38;;;::::0;::::1;;17609:176:::0;:::o;2177:244::-;1944:12;:10;:12::i;:::-;1934:22;;:6;;;;;;;;;;:22;;;1926:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2286:1:::1;2266:22;;:8;:22;;::::0;2258:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2376:8;2347:38;;2368:6;::::0;::::1;;;;;;;;2347:38;;;;;;;;;;;;2405:8;2396:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2177:244:::0;:::o;566:98::-;619:7;646:10;639:17;;566:98;:::o;9244:369::-;9388:1;9371:19;;:5;:19;;;9363:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9469:1;9450:21;;:7;:21;;;9442:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9551:6;9521:11;:18;9533:5;9521:18;;;;;;;;;;;;;;;:27;9540:7;9521:27;;;;;;;;;;;;;;;:36;;;;9589:7;9573:32;;9582:5;9573:32;;;9598:6;9573:32;;;;;;:::i;:::-;;;;;;;;9244:369;;;:::o;9621:2348::-;9759:1;9743:18;;:4;:18;;;9735:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9836:1;9822:16;;:2;:16;;;9814:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9906:1;9897:6;:10;9889:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9978:7;:5;:7::i;:::-;9970:15;;:4;:15;;;;:32;;;;;9995:7;:5;:7::i;:::-;9989:13;;:2;:13;;;;9970:32;9966:1293;;;10059:11;;;;;;;;;;;10054:144;;10107:7;:5;:7::i;:::-;10099:15;;:4;:15;;;10091:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10054:144;10232:12;;10222:6;:22;;10214:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10301:4;:10;10306:4;10301:10;;;;;;;;;;;;;;;;;;;;;;;;;10300:11;:24;;;;;10316:4;:8;10321:2;10316:8;;;;;;;;;;;;;;;;;;;;;;;;;10315:9;10300:24;10292:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10390:13;;;;;;;;;;;10384:19;;:2;:19;;;10381:146;;10457:14;;10448:6;10432:13;10442:2;10432:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10424:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10381:146;10543:28;10574:24;10592:4;10574:9;:24::i;:::-;10543:55;;10613:12;10652:19;;10628:20;:43;;10613:58;;10735:1;10715:19;;:21;;;;:::i;:::-;10691:20;:45;10688:142;;10813:1;10793:19;;:21;;;;:::i;:::-;10770:44;;10688:142;10850:7;:18;;;;;10862:6;;;;;;;;;;10861:7;10850:18;:43;;;;;10880:13;;;;;;;;;;;10872:21;;:4;:21;;;;10850:43;:58;;;;;10897:11;;;;;;;;;;;10850:58;:87;;;;;10913:18;:24;10932:4;10913:24;;;;;;;;;;;;;;;;;;;;;;;;;10912:25;10850:87;:114;;;;;10942:18;:22;10961:2;10942:22;;;;;;;;;;;;;;;;;;;;;;;;;10941:23;10850:114;10846:402;;;10985:38;11002:20;10985:16;:38::i;:::-;11042:26;11071:21;11042:50;;11136:17;11115:18;:38;11111:122;;;11178:35;11191:21;11178:12;:35::i;:::-;11111:122;10966:282;10846:402;10004:1255;;9966:1293;11271:12;11286:4;11271:19;;11335:18;:24;11354:4;11335:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11363:18;:22;11382:2;11363:22;;;;;;;;;;;;;;;;;;;;;;;;;11335:50;11334:102;;;;11399:13;;;;;;;;;;;11391:21;;:4;:21;;;;:44;;;;;11422:13;;;;;;;;;;;11416:19;;:2;:19;;;;11391:44;11334:102;11330:578;;;11463:5;11453:15;;11330:578;;;11546:13;;;;;;;;;;;11538:21;;:4;:21;;;:55;;;;;11577:15;;;;;;;;;;;11563:30;;:2;:30;;;;11538:55;11535:154;;;11622:10;;11614:5;:18;;;;11661:12;;11651:7;:22;;;;11535:154;11748:13;;;;;;;;;;;11742:19;;:2;:19;;;:55;;;;;11781:15;;;;;;;;;;;11765:32;;:4;:32;;;;11742:55;11738:157;;;11826:11;;11818:5;:19;;;;11866:13;;11856:7;:23;;;;11738:157;11330:578;11920:41;11935:4;11941:2;11945:6;11953:7;11920:14;:41::i;:::-;9724:2245;9621:2348;;;:::o;2785:224::-;2905:7;2938:1;2933;:6;;2941:12;2925:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2965:9;2981:1;2977;:5;;;;:::i;:::-;2965:17;;3000:1;2993:8;;;2785:224;;;;;:::o;12468:99::-;12525:17;;;;;;;;;;;:26;;:34;12552:6;12525:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12468:99;:::o;8585:323::-;8680:7;8738;;8727;:18;;8705:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8826:19;8848:10;:8;:10::i;:::-;8826:32;;8876:24;8888:11;8876:7;:11;;:24;;;;:::i;:::-;8869:31;;;8585:323;;;:::o;11977:483::-;6306:4;6297:6;;:13;;;;;;;;;;;;;;;;;;12055:21:::1;12093:1;12079:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12055:40;;12124:4;12106;12111:1;12106:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12150:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12140:4;12145:1;12140:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12183:62;12200:4;12215:15;;;;;;;;;;;12233:11;12183:8;:62::i;:::-;12256:15;;;;;;;;;;;:66;;;12337:11;12363:1;12379:4;12406;12426:15;12256:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12044:416;6342:5:::0;6333:6;;:14;;;;;;;;;;;;;;;;;;11977:483;:::o;13247:282::-;13403:7;13398:28;;13412:14;:12;:14::i;:::-;13398:28;13437:44;13455:6;13463:9;13474:6;13437:17;:44::i;:::-;13497:7;13492:29;;13506:15;:13;:15::i;:::-;13492:29;13247:282;;;;:::o;16196:164::-;16238:7;16259:15;16276;16295:19;:17;:19::i;:::-;16258:56;;;;16332:20;16344:7;16332;:11;;:20;;;;:::i;:::-;16325:27;;;;16196:164;:::o;3271:132::-;3329:7;3356:39;3360:1;3363;3356:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3349:46;;3271:132;;;;:::o;8916:203::-;8972:1;8963:5;;:10;:26;;;;;8988:1;8977:7;;:12;8963:26;8991:7;8959:39;9026:5;;9010:13;:21;;;;9060:7;;9042:15;:25;;;;9088:1;9080:5;:9;;;;9110:1;9100:7;:11;;;;8916:203;:::o;13537:610::-;13684:15;13714:23;13752:12;13779:23;13817:12;13844:13;13871:19;13882:7;13871:10;:19::i;:::-;13669:221;;;;;;;;;;;;13919:28;13939:7;13919;:15;13927:6;13919:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13901:7;:15;13909:6;13901:15;;;;;;;;;;;;;;;:46;;;;13979:39;14002:15;13979:7;:18;13987:9;13979:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13958:7;:18;13966:9;13958:18;;;;;;;;;;;;;;;:60;;;;14029:16;14039:5;14029:9;:16::i;:::-;14056:23;14068:4;14074;14056:11;:23::i;:::-;14112:9;14095:44;;14104:6;14095:44;;;14123:15;14095:44;;;;;;:::i;:::-;;;;;;;;13658:489;;;;;;13537:610;;;:::o;9127:109::-;9179:13;;9171:5;:21;;;;9213:15;;9203:7;:25;;;;9127:109::o;16368:257::-;16419:7;16428;16448:15;16466:7;;16448:25;;16484:15;5084:17;16484:25;;16534:20;5084:17;16534:7;;:11;;:20;;;;:::i;:::-;16524:7;:30;16520:61;;;16564:7;;5084:17;16556:25;;;;;;;;16520:61;16600:7;16609;16592:25;;;;;;16368:257;;;:::o;3411:223::-;3531:7;3563:1;3559;:5;3566:12;3551:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3590:9;3606:1;3602;:5;;;;:::i;:::-;3590:17;;3625:1;3618:8;;;3411:223;;;;;:::o;14566:611::-;14666:7;14688;14710;14732;14754;14776;14812:23;14837:12;14851:13;14881:36;14893:7;14902:5;;14909:7;;14881:11;:36::i;:::-;14811:106;;;;;;14928:19;14950:10;:8;:10::i;:::-;14928:32;;14972:15;14989:23;15014:12;15043:46;15055:7;15064:4;15070:5;15077:11;15043;:46::i;:::-;14971:118;;;;;;15108:7;15117:15;15134:4;15140:15;15157:4;15163:5;15100:69;;;;;;;;;;;;;;;;;;;14566:611;;;;;;;:::o;2641:136::-;2699:7;2726:43;2730:1;2733;2726:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2719:50;;2641:136;;;;:::o;2454:179::-;2512:7;2532:9;2548:1;2544;:5;;;;:::i;:::-;2532:17;;2573:1;2568;:6;;2560:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2624:1;2617:8;;;2454:179;;;;:::o;14155:211::-;14208:19;14230:10;:8;:10::i;:::-;14208:32;;14251:13;14267:22;14277:11;14267:5;:9;;:22;;;;:::i;:::-;14251:38;;14325:33;14352:5;14325:7;:22;14341:4;14325:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14300:7;:22;14316:4;14300:22;;;;;;;;;;;;;;;:58;;;;14197:169;;14155:211;:::o;14374:147::-;14452:17;14464:4;14452:7;;:11;;:17;;;;:::i;:::-;14442:7;:27;;;;14493:20;14508:4;14493:10;;:14;;:20;;;;:::i;:::-;14480:10;:33;;;;14374:147;;:::o;15185:461::-;15350:7;15372;15394;15429:12;15444:26;15466:3;15444:17;15456:4;15444:7;:11;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;15429:41;;15481:13;15497:28;15521:3;15497:19;15509:6;15497:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15481:44;;15536:23;15562:28;15584:5;15562:17;15574:4;15562:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15536:54;;15609:15;15626:4;15632:5;15601:37;;;;;;;;;15185:461;;;;;;;:::o;15654:534::-;15848:7;15870;15892;15927:15;15945:24;15957:11;15945:7;:11;;:24;;;;:::i;:::-;15927:42;;15980:12;15995:21;16004:11;15995:4;:8;;:21;;;;:::i;:::-;15980:36;;16027:13;16043:22;16053:11;16043:5;:9;;:22;;;;:::i;:::-;16027:38;;16076:23;16102:28;16124:5;16102:17;16114:4;16102:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16076:54;;16149:7;16158:15;16175:4;16141:39;;;;;;;;;;15654:534;;;;;;;;:::o;3017:246::-;3075:7;3104:1;3099;:6;3095:47;;3129:1;3122:8;;;;3095:47;3152:9;3168:1;3164;:5;;;;:::i;:::-;3152:17;;3197:1;3192;3188;:5;;;;:::i;:::-;:10;3180:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3254:1;3247:8;;;3017:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:329::-;7672:6;7721:2;7709:9;7700:7;7696:23;7692:32;7689:119;;;7727:79;;:::i;:::-;7689:119;7847:1;7872:53;7917:7;7908:6;7897:9;7893:22;7872:53;:::i;:::-;7862:63;;7818:117;7613:329;;;;:::o;7948:619::-;8025:6;8033;8041;8090:2;8078:9;8069:7;8065:23;8061:32;8058:119;;;8096:79;;:::i;:::-;8058:119;8216:1;8241:53;8286:7;8277:6;8266:9;8262:22;8241:53;:::i;:::-;8231:63;;8187:117;8343:2;8369:53;8414:7;8405:6;8394:9;8390:22;8369:53;:::i;:::-;8359:63;;8314:118;8471:2;8497:53;8542:7;8533:6;8522:9;8518:22;8497:53;:::i;:::-;8487:63;;8442:118;7948:619;;;;;:::o;8573:86::-;8608:7;8648:4;8641:5;8637:16;8626:27;;8573:86;;;:::o;8665:112::-;8748:22;8764:5;8748:22;:::i;:::-;8743:3;8736:35;8665:112;;:::o;8783:214::-;8872:4;8910:2;8899:9;8895:18;8887:26;;8923:67;8987:1;8976:9;8972:17;8963:6;8923:67;:::i;:::-;8783:214;;;;:::o;9003:118::-;9090:24;9108:5;9090:24;:::i;:::-;9085:3;9078:37;9003:118;;:::o;9127:222::-;9220:4;9258:2;9247:9;9243:18;9235:26;;9271:71;9339:1;9328:9;9324:17;9315:6;9271:71;:::i;:::-;9127:222;;;;:::o;9355:116::-;9425:21;9440:5;9425:21;:::i;:::-;9418:5;9415:32;9405:60;;9461:1;9458;9451:12;9405:60;9355:116;:::o;9477:133::-;9520:5;9558:6;9545:20;9536:29;;9574:30;9598:5;9574:30;:::i;:::-;9477:133;;;;:::o;9616:323::-;9672:6;9721:2;9709:9;9700:7;9696:23;9692:32;9689:119;;;9727:79;;:::i;:::-;9689:119;9847:1;9872:50;9914:7;9905:6;9894:9;9890:22;9872:50;:::i;:::-;9862:60;;9818:114;9616:323;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:180::-;13982:77;13979:1;13972:88;14079:4;14076:1;14069:15;14103:4;14100:1;14093:15;14120:180;14168:77;14165:1;14158:88;14265:4;14262:1;14255:15;14289:4;14286:1;14279:15;14306:410;14346:7;14369:20;14387:1;14369:20;:::i;:::-;14364:25;;14403:20;14421:1;14403:20;:::i;:::-;14398:25;;14458:1;14455;14451:9;14480:30;14498:11;14480:30;:::i;:::-;14469:41;;14659:1;14650:7;14646:15;14643:1;14640:22;14620:1;14613:9;14593:83;14570:139;;14689:18;;:::i;:::-;14570:139;14354:362;14306:410;;;;:::o;14722:180::-;14770:77;14767:1;14760:88;14867:4;14864:1;14857:15;14891:4;14888:1;14881:15;14908:185;14948:1;14965:20;14983:1;14965:20;:::i;:::-;14960:25;;14999:20;15017:1;14999:20;:::i;:::-;14994:25;;15038:1;15028:35;;15043:18;;:::i;:::-;15028:35;15085:1;15082;15078:9;15073:14;;14908:185;;;;:::o;15099:191::-;15139:3;15158:20;15176:1;15158:20;:::i;:::-;15153:25;;15192:20;15210:1;15192:20;:::i;:::-;15187:25;;15235:1;15232;15228:9;15221:16;;15256:3;15253:1;15250:10;15247:36;;;15263:18;;:::i;:::-;15247:36;15099:191;;;;:::o;15296:221::-;15436:34;15432:1;15424:6;15420:14;15413:58;15505:4;15500:2;15492:6;15488:15;15481:29;15296:221;:::o;15523:366::-;15665:3;15686:67;15750:2;15745:3;15686:67;:::i;:::-;15679:74;;15762:93;15851:3;15762:93;:::i;:::-;15880:2;15875:3;15871:12;15864:19;;15523:366;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;15895:419;;;:::o;16320:225::-;16460:34;16456:1;16448:6;16444:14;16437:58;16529:8;16524:2;16516:6;16512:15;16505:33;16320:225;:::o;16551:366::-;16693:3;16714:67;16778:2;16773:3;16714:67;:::i;:::-;16707:74;;16790:93;16879:3;16790:93;:::i;:::-;16908:2;16903:3;16899:12;16892:19;;16551:366;;;:::o;16923:419::-;17089:4;17127:2;17116:9;17112:18;17104:26;;17176:9;17170:4;17166:20;17162:1;17151:9;17147:17;17140:47;17204:131;17330:4;17204:131;:::i;:::-;17196:139;;16923:419;;;:::o;17348:223::-;17488:34;17484:1;17476:6;17472:14;17465:58;17557:6;17552:2;17544:6;17540:15;17533:31;17348:223;:::o;17577:366::-;17719:3;17740:67;17804:2;17799:3;17740:67;:::i;:::-;17733:74;;17816:93;17905:3;17816:93;:::i;:::-;17934:2;17929:3;17925:12;17918:19;;17577:366;;;:::o;17949:419::-;18115:4;18153:2;18142:9;18138:18;18130:26;;18202:9;18196:4;18192:20;18188:1;18177:9;18173:17;18166:47;18230:131;18356:4;18230:131;:::i;:::-;18222:139;;17949:419;;;:::o;18374:221::-;18514:34;18510:1;18502:6;18498:14;18491:58;18583:4;18578:2;18570:6;18566:15;18559:29;18374:221;:::o;18601:366::-;18743:3;18764:67;18828:2;18823:3;18764:67;:::i;:::-;18757:74;;18840:93;18929:3;18840:93;:::i;:::-;18958:2;18953:3;18949:12;18942:19;;18601:366;;;:::o;18973:419::-;19139:4;19177:2;19166:9;19162:18;19154:26;;19226:9;19220:4;19216:20;19212:1;19201:9;19197:17;19190:47;19254:131;19380:4;19254:131;:::i;:::-;19246:139;;18973:419;;;:::o;19398:224::-;19538:34;19534:1;19526:6;19522:14;19515:58;19607:7;19602:2;19594:6;19590:15;19583:32;19398:224;:::o;19628:366::-;19770:3;19791:67;19855:2;19850:3;19791:67;:::i;:::-;19784:74;;19867:93;19956:3;19867:93;:::i;:::-;19985:2;19980:3;19976:12;19969:19;;19628:366;;;:::o;20000:419::-;20166:4;20204:2;20193:9;20189:18;20181:26;;20253:9;20247:4;20243:20;20239:1;20228:9;20224:17;20217:47;20281:131;20407:4;20281:131;:::i;:::-;20273:139;;20000:419;;;:::o;20425:222::-;20565:34;20561:1;20553:6;20549:14;20542:58;20634:5;20629:2;20621:6;20617:15;20610:30;20425:222;:::o;20653:366::-;20795:3;20816:67;20880:2;20875:3;20816:67;:::i;:::-;20809:74;;20892:93;20981:3;20892:93;:::i;:::-;21010:2;21005:3;21001:12;20994:19;;20653:366;;;:::o;21025:419::-;21191:4;21229:2;21218:9;21214:18;21206:26;;21278:9;21272:4;21268:20;21264:1;21253:9;21249:17;21242:47;21306:131;21432:4;21306:131;:::i;:::-;21298:139;;21025:419;;;:::o;21450:228::-;21590:34;21586:1;21578:6;21574:14;21567:58;21659:11;21654:2;21646:6;21642:15;21635:36;21450:228;:::o;21684:366::-;21826:3;21847:67;21911:2;21906:3;21847:67;:::i;:::-;21840:74;;21923:93;22012:3;21923:93;:::i;:::-;22041:2;22036:3;22032:12;22025:19;;21684:366;;;:::o;22056:419::-;22222:4;22260:2;22249:9;22245:18;22237:26;;22309:9;22303:4;22299:20;22295:1;22284:9;22280:17;22273:47;22337:131;22463:4;22337:131;:::i;:::-;22329:139;;22056:419;;;:::o;22481:250::-;22621:34;22617:1;22609:6;22605:14;22598:58;22690:33;22685:2;22677:6;22673:15;22666:58;22481:250;:::o;22737:366::-;22879:3;22900:67;22964:2;22959:3;22900:67;:::i;:::-;22893:74;;22976:93;23065:3;22976:93;:::i;:::-;23094:2;23089:3;23085:12;23078:19;;22737:366;;;:::o;23109:419::-;23275:4;23313:2;23302:9;23298:18;23290:26;;23362:9;23356:4;23352:20;23348:1;23337:9;23333:17;23326:47;23390:131;23516:4;23390:131;:::i;:::-;23382:139;;23109:419;;;:::o;23534:178::-;23674:30;23670:1;23662:6;23658:14;23651:54;23534:178;:::o;23718:366::-;23860:3;23881:67;23945:2;23940:3;23881:67;:::i;:::-;23874:74;;23957:93;24046:3;23957:93;:::i;:::-;24075:2;24070:3;24066:12;24059:19;;23718:366;;;:::o;24090:419::-;24256:4;24294:2;24283:9;24279:18;24271:26;;24343:9;24337:4;24333:20;24329:1;24318:9;24314:17;24307:47;24371:131;24497:4;24371:131;:::i;:::-;24363:139;;24090:419;;;:::o;24515:222::-;24655:34;24651:1;24643:6;24639:14;24632:58;24724:5;24719:2;24711:6;24707:15;24700:30;24515:222;:::o;24743:366::-;24885:3;24906:67;24970:2;24965:3;24906:67;:::i;:::-;24899:74;;24982:93;25071:3;24982:93;:::i;:::-;25100:2;25095:3;25091:12;25084:19;;24743:366;;;:::o;25115:419::-;25281:4;25319:2;25308:9;25304:18;25296:26;;25368:9;25362:4;25358:20;25354:1;25343:9;25339:17;25332:47;25396:131;25522:4;25396:131;:::i;:::-;25388:139;;25115:419;;;:::o;25540:222::-;25680:34;25676:1;25668:6;25664:14;25657:58;25749:5;25744:2;25736:6;25732:15;25725:30;25540:222;:::o;25768:366::-;25910:3;25931:67;25995:2;25990:3;25931:67;:::i;:::-;25924:74;;26007:93;26096:3;26007:93;:::i;:::-;26125:2;26120:3;26116:12;26109:19;;25768:366;;;:::o;26140:419::-;26306:4;26344:2;26333:9;26329:18;26321:26;;26393:9;26387:4;26383:20;26379:1;26368:9;26364:17;26357:47;26421:131;26547:4;26421:131;:::i;:::-;26413:139;;26140:419;;;:::o;26565:194::-;26605:4;26625:20;26643:1;26625:20;:::i;:::-;26620:25;;26659:20;26677:1;26659:20;:::i;:::-;26654:25;;26703:1;26700;26696:9;26688:17;;26727:1;26721:4;26718:11;26715:37;;;26732:18;;:::i;:::-;26715:37;26565:194;;;;:::o;26765:229::-;26905:34;26901:1;26893:6;26889:14;26882:58;26974:12;26969:2;26961:6;26957:15;26950:37;26765:229;:::o;27000:366::-;27142:3;27163:67;27227:2;27222:3;27163:67;:::i;:::-;27156:74;;27239:93;27328:3;27239:93;:::i;:::-;27357:2;27352:3;27348:12;27341:19;;27000:366;;;:::o;27372:419::-;27538:4;27576:2;27565:9;27561:18;27553:26;;27625:9;27619:4;27615:20;27611:1;27600:9;27596:17;27589:47;27653:131;27779:4;27653:131;:::i;:::-;27645:139;;27372:419;;;:::o;27797:143::-;27854:5;27885:6;27879:13;27870:22;;27901:33;27928:5;27901:33;:::i;:::-;27797:143;;;;:::o;27946:351::-;28016:6;28065:2;28053:9;28044:7;28040:23;28036:32;28033:119;;;28071:79;;:::i;:::-;28033:119;28191:1;28216:64;28272:7;28263:6;28252:9;28248:22;28216:64;:::i;:::-;28206:74;;28162:128;27946:351;;;;:::o;28303:85::-;28348:7;28377:5;28366:16;;28303:85;;;:::o;28394:158::-;28452:9;28485:61;28503:42;28512:32;28538:5;28512:32;:::i;:::-;28503:42;:::i;:::-;28485:61;:::i;:::-;28472:74;;28394:158;;;:::o;28558:147::-;28653:45;28692:5;28653:45;:::i;:::-;28648:3;28641:58;28558:147;;:::o;28711:114::-;28778:6;28812:5;28806:12;28796:22;;28711:114;;;:::o;28831:184::-;28930:11;28964:6;28959:3;28952:19;29004:4;28999:3;28995:14;28980:29;;28831:184;;;;:::o;29021:132::-;29088:4;29111:3;29103:11;;29141:4;29136:3;29132:14;29124:22;;29021:132;;;:::o;29159:108::-;29236:24;29254:5;29236:24;:::i;:::-;29231:3;29224:37;29159:108;;:::o;29273:179::-;29342:10;29363:46;29405:3;29397:6;29363:46;:::i;:::-;29441:4;29436:3;29432:14;29418:28;;29273:179;;;;:::o;29458:113::-;29528:4;29560;29555:3;29551:14;29543:22;;29458:113;;;:::o;29607:732::-;29726:3;29755:54;29803:5;29755:54;:::i;:::-;29825:86;29904:6;29899:3;29825:86;:::i;:::-;29818:93;;29935:56;29985:5;29935:56;:::i;:::-;30014:7;30045:1;30030:284;30055:6;30052:1;30049:13;30030:284;;;30131:6;30125:13;30158:63;30217:3;30202:13;30158:63;:::i;:::-;30151:70;;30244:60;30297:6;30244:60;:::i;:::-;30234:70;;30090:224;30077:1;30074;30070:9;30065:14;;30030:284;;;30034:14;30330:3;30323:10;;29731:608;;;29607:732;;;;:::o;30345:831::-;30608:4;30646:3;30635:9;30631:19;30623:27;;30660:71;30728:1;30717:9;30713:17;30704:6;30660:71;:::i;:::-;30741:80;30817:2;30806:9;30802:18;30793:6;30741:80;:::i;:::-;30868:9;30862:4;30858:20;30853:2;30842:9;30838:18;30831:48;30896:108;30999:4;30990:6;30896:108;:::i;:::-;30888:116;;31014:72;31082:2;31071:9;31067:18;31058:6;31014:72;:::i;:::-;31096:73;31164:3;31153:9;31149:19;31140:6;31096:73;:::i;:::-;30345:831;;;;;;;;:::o;31182:177::-;31322:29;31318:1;31310:6;31306:14;31299:53;31182:177;:::o;31365:366::-;31507:3;31528:67;31592:2;31587:3;31528:67;:::i;:::-;31521:74;;31604:93;31693:3;31604:93;:::i;:::-;31722:2;31717:3;31713:12;31706:19;;31365:366;;;:::o;31737:419::-;31903:4;31941:2;31930:9;31926:18;31918:26;;31990:9;31984:4;31980:20;31976:1;31965:9;31961:17;31954:47;32018:131;32144:4;32018:131;:::i;:::-;32010:139;;31737:419;;;:::o;32162:220::-;32302:34;32298:1;32290:6;32286:14;32279:58;32371:3;32366:2;32358:6;32354:15;32347:28;32162:220;:::o;32388:366::-;32530:3;32551:67;32615:2;32610:3;32551:67;:::i;:::-;32544:74;;32627:93;32716:3;32627:93;:::i;:::-;32745:2;32740:3;32736:12;32729:19;;32388:366;;;:::o;32760:419::-;32926:4;32964:2;32953:9;32949:18;32941:26;;33013:9;33007:4;33003:20;32999:1;32988:9;32984:17;32977:47;33041:131;33167:4;33041:131;:::i;:::-;33033:139;;32760:419;;;:::o
Swarm Source
ipfs://7ebe18e7aeb5766df5dfca76b18d12e68005a53f9fb3ebec1e6311b826a4d4eb
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.