Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
10,000,000 CC
Holders
97
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
138,720.456047389 CCValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
CRO
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-01 */ // 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 CRO is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "CRO"; string private constant _symbol = "CC"; 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 = 10000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 10; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 20; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; address payable private _developmentAddress = payable(0x0346057A61F2047f0D288FBEcABce80925cE2Bbc); address payable private _marketingAddress = payable(0x0346057A61F2047f0D288FBEcABce80925cE2Bbc); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = true; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 200001 * 10**9; uint256 public _maxWalletSize = 200001 * 10**9; uint256 public _swapTokensAtAmount = 50000 * 10**9; 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 (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _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 >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { 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)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _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 setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } 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, _redisFee, _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 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).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 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 0, "Buy rewards must be 0%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 5, "Buy tax must be between 0% and 5%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 0, "Sell rewards must be 0%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 5, "Sell tax must be between 0% and 5%"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //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 { require( maxTxAmount >= ((totalSupply() * 1) / 100), "Cannot set maxTransactionAmount lower than 1%" ); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { require( maxWalletSize >= ((totalSupply() * 1) / 100), "Cannot set maxWalletAmount lower than 1%" ); _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
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":"","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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","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":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","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":[],"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052662386f26fc100006000196200001b919062000725565b6000196200002a91906200078c565b6006556000600855600a6009556000600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f55730346057a61f2047f0d288fbecabce80925ce2bbc601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730346057a61f2047f0d288fbecabce80925ce2bbc601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555065b5e65c8f4a0060165565b5e65c8f4a00601755652d79883d20006018553480156200017e57600080fd5b50600062000191620006bb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000246620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000350919062000831565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003de919062000831565b6040518363ffffffff1660e01b8152600401620003fd92919062000874565b6020604051808303816000875af11580156200041d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000443919062000831565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000499620006c360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000646620006bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc10000604051620006ac9190620008b2565b60405180910390a350620008cf565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073282620006ec565b91506200073f83620006ec565b925082620007525762000751620006f6565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079982620006ec565b9150620007a683620006ec565b9250828203905081811115620007c157620007c06200075d565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f982620007cc565b9050919050565b6200080b81620007ec565b81146200081757600080fd5b50565b6000815190506200082b8162000800565b92915050565b6000602082840312156200084a5762000849620007c7565b5b60006200085a848285016200081a565b91505092915050565b6200086e81620007ec565b82525050565b60006040820190506200088b600083018562000863565b6200089a602083018462000863565b9392505050565b620008ac81620006ec565b82525050565b6000602082019050620008c96000830184620008a1565b92915050565b613ec280620008df6000396000f3fe6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e99190612b99565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c59565b6106ea565b6040516102269190612cb4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612d2e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612d58565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d73565b61073d565b6040516102b99190612cb4565b60405180910390f35b3480156102ce57600080fd5b506102d7610816565b6040516102e49190612d58565b60405180910390f35b3480156102f957600080fd5b5061030261081c565b60405161030f9190612de2565b60405180910390f35b34801561032457600080fd5b5061032d610825565b60405161033a9190612e0c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612e53565b61084b565b005b34801561037857600080fd5b506103816108fd565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612e80565b6109ce565b6040516103b79190612d58565b60405180910390f35b3480156103cc57600080fd5b506103d5610a1f565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ead565b610b72565b005b34801561040c57600080fd5b50610415610c73565b6040516104229190612d58565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612e80565b610c79565b60405161045f9190612d58565b60405180910390f35b34801561047457600080fd5b5061047d610c91565b60405161048a9190612e0c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612e53565b610cba565b005b3480156104c857600080fd5b506104d1610d6c565b6040516104de9190612d58565b60405180910390f35b3480156104f357600080fd5b506104fc610d72565b6040516105099190612b99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ead565b610daf565b005b34801561054757600080fd5b50610562600480360381019061055d9190612eda565b610e4e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612c59565b611049565b6040516105989190612cb4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612e80565b611067565b6040516105d59190612cb4565b60405180910390f35b3480156105ea57600080fd5b506105f3611087565b005b34801561060157600080fd5b5061061c60048036038101906106179190612fa6565b611160565b005b34801561062a57600080fd5b5061064560048036038101906106409190613006565b61129a565b6040516106529190612d58565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ead565b611321565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612e80565b611422565b005b60606040518060400160405280600381526020017f43524f0000000000000000000000000000000000000000000000000000000000815250905090565b60006106fe6106f76115e3565b84846115eb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061074a8484846117b4565b61080b846107566115e3565b61080685604051806060016040528060288152602001613e6560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bc6115e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b6115eb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108536115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d790613092565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e6115e3565b73ffffffffffffffffffffffffffffffffffffffff1614806109b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b6109bd57600080fd5b60004790506109cb8161209b565b50565b6000610a18600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612107565b9050919050565b610a276115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90613092565b60405180910390fd5b60646001610c1361072e565b610c1d91906130e1565b610c279190613152565b811015610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c60906131f5565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc26115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613092565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600281526020017f4343000000000000000000000000000000000000000000000000000000000000815250905090565b610db76115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613092565b60405180910390fd5b8060188190555050565b610e566115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613092565b60405180910390fd5b60008410158015610ef5575060008411155b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613261565b60405180910390fd5b60008210158015610f46575060058211155b610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c906132f3565b60405180910390fd5b60008310158015610f97575060008311155b610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd9061335f565b60405180910390fd5b60008110158015610fe8575060058111155b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906133f1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061105d6110566115e3565b84846117b4565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c86115e3565b73ffffffffffffffffffffffffffffffffffffffff16148061113e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111266115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b61114757600080fd5b6000611152306109ce565b905061115d81612175565b50565b6111686115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613092565b60405180910390fd5b60005b8383905081101561129457816005600086868581811061121b5761121a613411565b5b90506020020160208101906112309190612e80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128c90613440565b9150506111f8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113296115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613092565b60405180910390fd5b606460016113c261072e565b6113cc91906130e1565b6113d69190613152565b811015611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f906134fa565b60405180910390fd5b8060178190555050565b61142a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d9061358c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116519061361e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c0906136b0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a79190612d58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613742565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137d4565b60405180910390fd5b600081116118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613866565b60405180910390fd5b6118dd610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194b575061191b610c91565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d3657601560149054906101000a900460ff166119da5761196c610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d0906138f8565b60405180910390fd5b5b601654811115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1690613964565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ac35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af9906139f6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baf5760175481611b64846109ce565b611b6e9190613a16565b10611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613abc565b60405180910390fd5b5b6000611bba306109ce565b9050600060185482101590506016548210611bd55760165491505b808015611bed575060158054906101000a900460ff16155b8015611c475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5f5750601560169054906101000a900460ff165b8015611cb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3357611d1982612175565b60004790506000811115611d3157611d304761209b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ddd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e905750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e8f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e9e5760009050612025565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f6157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561200c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561202457600a54600c81905550600b54600d819055505b5b612031848484846123ec565b50505050565b600083831115829061207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769190612b99565b60405180910390fd5b506000838561208e9190613adc565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612103573d6000803e3d6000fd5b5050565b600060065482111561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590613b82565b60405180910390fd5b6000612158612419565b905061216d818461244490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ac576121ab613ba2565b5b6040519080825280602002602001820160405280156121da5781602001602082028036833780820191505090505b50905030816000815181106121f2576121f1613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd9190613be6565b816001815181106122d1576122d0613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239c959493929190613d0c565b600060405180830381600087803b1580156123b657600080fd5b505af11580156123ca573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123fa576123f961248e565b5b6124058484846124cb565b8061241357612412612696565b5b50505050565b60008060006124266126aa565b9150915061243d818361244490919063ffffffff16565b9250505090565b600061248683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612706565b905092915050565b6000600c541480156124a257506000600d54145b6124c957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806124dd87612769565b95509550955095509550955061253b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261c81612879565b6126268483612936565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126839190612d58565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc1000090506126dc662386f26fc1000060065461244490919063ffffffff16565b8210156126f957600654662386f26fc10000935093505050612702565b81819350935050505b9091565b6000808311829061274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449190612b99565b60405180910390fd5b506000838561275c9190613152565b9050809150509392505050565b60008060008060008060008060006127868a600c54600d54612970565b9250925092506000612796612419565b905060008060006127a98e878787612a06565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b600080828461282a9190613a16565b90508381101561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613db2565b60405180910390fd5b8091505092915050565b6000612883612419565b9050600061289a8284612a8f90919063ffffffff16565b90506128ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61294b826006546127d190919063ffffffff16565b6006819055506129668160075461281b90919063ffffffff16565b6007819055505050565b60008060008061299c606461298e888a612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129c660646129b8888b612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129ef826129e1858c6127d190919063ffffffff16565b6127d190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a1f8589612a8f90919063ffffffff16565b90506000612a368689612a8f90919063ffffffff16565b90506000612a4d8789612a8f90919063ffffffff16565b90506000612a7682612a6885876127d190919063ffffffff16565b6127d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612aa15760009050612b03565b60008284612aaf91906130e1565b9050828482612abe9190613152565b14612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e44565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b43578082015181840152602081019050612b28565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b6b82612b09565b612b758185612b14565b9350612b85818560208601612b25565b612b8e81612b4f565b840191505092915050565b60006020820190508181036000830152612bb38184612b60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bf082612bc5565b9050919050565b612c0081612be5565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b6000819050919050565b612c3681612c23565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612bbb565b5b6000612c7e85828601612c0e565b9250506020612c8f85828601612c44565b9150509250929050565b60008115159050919050565b612cae81612c99565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b6000819050919050565b6000612cf4612cef612cea84612bc5565b612ccf565b612bc5565b9050919050565b6000612d0682612cd9565b9050919050565b6000612d1882612cfb565b9050919050565b612d2881612d0d565b82525050565b6000602082019050612d436000830184612d1f565b92915050565b612d5281612c23565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600080600060608486031215612d8c57612d8b612bbb565b5b6000612d9a86828701612c0e565b9350506020612dab86828701612c0e565b9250506040612dbc86828701612c44565b9150509250925092565b600060ff82169050919050565b612ddc81612dc6565b82525050565b6000602082019050612df76000830184612dd3565b92915050565b612e0681612be5565b82525050565b6000602082019050612e216000830184612dfd565b92915050565b612e3081612c99565b8114612e3b57600080fd5b50565b600081359050612e4d81612e27565b92915050565b600060208284031215612e6957612e68612bbb565b5b6000612e7784828501612e3e565b91505092915050565b600060208284031215612e9657612e95612bbb565b5b6000612ea484828501612c0e565b91505092915050565b600060208284031215612ec357612ec2612bbb565b5b6000612ed184828501612c44565b91505092915050565b60008060008060808587031215612ef457612ef3612bbb565b5b6000612f0287828801612c44565b9450506020612f1387828801612c44565b9350506040612f2487828801612c44565b9250506060612f3587828801612c44565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612f6657612f65612f41565b5b8235905067ffffffffffffffff811115612f8357612f82612f46565b5b602083019150836020820283011115612f9f57612f9e612f4b565b5b9250929050565b600080600060408486031215612fbf57612fbe612bbb565b5b600084013567ffffffffffffffff811115612fdd57612fdc612bc0565b5b612fe986828701612f50565b93509350506020612ffc86828701612e3e565b9150509250925092565b6000806040838503121561301d5761301c612bbb565b5b600061302b85828601612c0e565b925050602061303c85828601612c0e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307c602083612b14565b915061308782613046565b602082019050919050565b600060208201905081810360008301526130ab8161306f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ec82612c23565b91506130f783612c23565b925082820261310581612c23565b9150828204841483151761311c5761311b6130b2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061315d82612c23565b915061316883612c23565b92508261317857613177613123565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006131df602d83612b14565b91506131ea82613183565b604082019050919050565b6000602082019050818103600083015261320e816131d2565b9050919050565b7f4275792072657761726473206d75737420626520302500000000000000000000600082015250565b600061324b601683612b14565b915061325682613215565b602082019050919050565b6000602082019050818103600083015261327a8161323e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006132dd602183612b14565b91506132e882613281565b604082019050919050565b6000602082019050818103600083015261330c816132d0565b9050919050565b7f53656c6c2072657761726473206d757374206265203025000000000000000000600082015250565b6000613349601783612b14565b915061335482613313565b602082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b60006133db602283612b14565b91506133e68261337f565b604082019050919050565b6000602082019050818103600083015261340a816133ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061344b82612c23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347d5761347c6130b2565b5b600182019050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b60006134e4602883612b14565b91506134ef82613488565b604082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613576602683612b14565b91506135818261351a565b604082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613608602483612b14565b9150613613826135ac565b604082019050919050565b60006020820190508181036000830152613637816135fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061369a602283612b14565b91506136a58261363e565b604082019050919050565b600060208201905081810360008301526136c98161368d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061372c602583612b14565b9150613737826136d0565b604082019050919050565b6000602082019050818103600083015261375b8161371f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137be602383612b14565b91506137c982613762565b604082019050919050565b600060208201905081810360008301526137ed816137b1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613850602983612b14565b915061385b826137f4565b604082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138e2603f83612b14565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061394e601c83612b14565b915061395982613918565b602082019050919050565b6000602082019050818103600083015261397d81613941565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139e0602383612b14565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b6000613a2182612c23565b9150613a2c83612c23565b9250828201905080821115613a4457613a436130b2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa6602383612b14565b9150613ab182613a4a565b604082019050919050565b60006020820190508181036000830152613ad581613a99565b9050919050565b6000613ae782612c23565b9150613af283612c23565b9250828203905081811115613b0a57613b096130b2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b6c602a83612b14565b9150613b7782613b10565b604082019050919050565b60006020820190508181036000830152613b9b81613b5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613be081612bf7565b92915050565b600060208284031215613bfc57613bfb612bbb565b5b6000613c0a84828501613bd1565b91505092915050565b6000819050919050565b6000613c38613c33613c2e84613c13565b612ccf565b612c23565b9050919050565b613c4881613c1d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8381612be5565b82525050565b6000613c958383613c7a565b60208301905092915050565b6000602082019050919050565b6000613cb982613c4e565b613cc38185613c59565b9350613cce83613c6a565b8060005b83811015613cff578151613ce68882613c89565b9750613cf183613ca1565b925050600181019050613cd2565b5085935050505092915050565b600060a082019050613d216000830188612d49565b613d2e6020830187613c3f565b8181036040830152613d408186613cae565b9050613d4f6060830185612dfd565b613d5c6080830184612d49565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d9c601b83612b14565b9150613da782613d66565b602082019050919050565b60006020820190508181036000830152613dcb81613d8f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e2e602183612b14565b9150613e3982613dd2565b604082019050919050565b60006020820190508181036000830152613e5d81613e21565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202d136d202ac26282face63800fbeef8a60dc0b94ef3486dfd85c6806c2e3d98464736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c80637f2feddc116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105f5578063dd62ed3e1461061e578063ea1644d51461065b578063f2fde38b14610684576101c2565b8063a9059cbb14610564578063bfd79284146105a1578063c3c8cd80146105de576101c2565b80638f9a55c0116100c65780638f9a55c0146104bc57806395d89b41146104e757806398a5c31514610512578063a2a957bb1461053b576101c2565b80637f2feddc1461042b5780638da5cb5b146104685780638f70ccf714610493576101c2565b806349bd5a5e1161015957806370a082311161013357806370a0823114610383578063715018a6146103c057806374010ece146103d75780637d1db4a514610400576101c2565b806349bd5a5e146103185780636d8aa8f8146103435780636fc3eaec1461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106ad565b6040516101e99190612b99565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612c59565b6106ea565b6040516102269190612cb4565b60405180910390f35b34801561023b57600080fd5b50610244610708565b6040516102519190612d2e565b60405180910390f35b34801561026657600080fd5b5061026f61072e565b60405161027c9190612d58565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612d73565b61073d565b6040516102b99190612cb4565b60405180910390f35b3480156102ce57600080fd5b506102d7610816565b6040516102e49190612d58565b60405180910390f35b3480156102f957600080fd5b5061030261081c565b60405161030f9190612de2565b60405180910390f35b34801561032457600080fd5b5061032d610825565b60405161033a9190612e0c565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612e53565b61084b565b005b34801561037857600080fd5b506103816108fd565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190612e80565b6109ce565b6040516103b79190612d58565b60405180910390f35b3480156103cc57600080fd5b506103d5610a1f565b005b3480156103e357600080fd5b506103fe60048036038101906103f99190612ead565b610b72565b005b34801561040c57600080fd5b50610415610c73565b6040516104229190612d58565b60405180910390f35b34801561043757600080fd5b50610452600480360381019061044d9190612e80565b610c79565b60405161045f9190612d58565b60405180910390f35b34801561047457600080fd5b5061047d610c91565b60405161048a9190612e0c565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b59190612e53565b610cba565b005b3480156104c857600080fd5b506104d1610d6c565b6040516104de9190612d58565b60405180910390f35b3480156104f357600080fd5b506104fc610d72565b6040516105099190612b99565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190612ead565b610daf565b005b34801561054757600080fd5b50610562600480360381019061055d9190612eda565b610e4e565b005b34801561057057600080fd5b5061058b60048036038101906105869190612c59565b611049565b6040516105989190612cb4565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c39190612e80565b611067565b6040516105d59190612cb4565b60405180910390f35b3480156105ea57600080fd5b506105f3611087565b005b34801561060157600080fd5b5061061c60048036038101906106179190612fa6565b611160565b005b34801561062a57600080fd5b5061064560048036038101906106409190613006565b61129a565b6040516106529190612d58565b60405180910390f35b34801561066757600080fd5b50610682600480360381019061067d9190612ead565b611321565b005b34801561069057600080fd5b506106ab60048036038101906106a69190612e80565b611422565b005b60606040518060400160405280600381526020017f43524f0000000000000000000000000000000000000000000000000000000000815250905090565b60006106fe6106f76115e3565b84846115eb565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000662386f26fc10000905090565b600061074a8484846117b4565b61080b846107566115e3565b61080685604051806060016040528060288152602001613e6560289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107bc6115e3565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b6115eb565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108536115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d790613092565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661093e6115e3565b73ffffffffffffffffffffffffffffffffffffffff1614806109b45750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661099c6115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b6109bd57600080fd5b60004790506109cb8161209b565b50565b6000610a18600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612107565b9050919050565b610a276115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aab90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b7a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90613092565b60405180910390fd5b60646001610c1361072e565b610c1d91906130e1565b610c279190613152565b811015610c69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c60906131f5565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610cc26115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4690613092565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600281526020017f4343000000000000000000000000000000000000000000000000000000000000815250905090565b610db76115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b90613092565b60405180910390fd5b8060188190555050565b610e566115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eda90613092565b60405180910390fd5b60008410158015610ef5575060008411155b610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613261565b60405180910390fd5b60008210158015610f46575060058211155b610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c906132f3565b60405180910390fd5b60008310158015610f97575060008311155b610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd9061335f565b60405180910390fd5b60008110158015610fe8575060058111155b611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e906133f1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061105d6110566115e3565b84846117b4565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110c86115e3565b73ffffffffffffffffffffffffffffffffffffffff16148061113e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111266115e3565b73ffffffffffffffffffffffffffffffffffffffff16145b61114757600080fd5b6000611152306109ce565b905061115d81612175565b50565b6111686115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec90613092565b60405180910390fd5b60005b8383905081101561129457816005600086868581811061121b5761121a613411565b5b90506020020160208101906112309190612e80565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061128c90613440565b9150506111f8565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113296115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ad90613092565b60405180910390fd5b606460016113c261072e565b6113cc91906130e1565b6113d69190613152565b811015611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f906134fa565b60405180910390fd5b8060178190555050565b61142a6115e3565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ae90613092565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d9061358c565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361165a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116519061361e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c0906136b0565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117a79190612d58565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613742565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611892576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611889906137d4565b60405180910390fd5b600081116118d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cc90613866565b60405180910390fd5b6118dd610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561194b575061191b610c91565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d3657601560149054906101000a900460ff166119da5761196c610c91565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146119d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d0906138f8565b60405180910390fd5b5b601654811115611a1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1690613964565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ac35750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af9906139f6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611baf5760175481611b64846109ce565b611b6e9190613a16565b10611bae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba590613abc565b60405180910390fd5b5b6000611bba306109ce565b9050600060185482101590506016548210611bd55760165491505b808015611bed575060158054906101000a900460ff16155b8015611c475750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5f5750601560169054906101000a900460ff165b8015611cb55750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d0b5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d3357611d1982612175565b60004790506000811115611d3157611d304761209b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ddd5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611e905750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611e8f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611e9e5760009050612025565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611f495750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611f6157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561200c5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561202457600a54600c81905550600b54600d819055505b5b612031848484846123ec565b50505050565b600083831115829061207f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120769190612b99565b60405180910390fd5b506000838561208e9190613adc565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612103573d6000803e3d6000fd5b5050565b600060065482111561214e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214590613b82565b60405180910390fd5b6000612158612419565b905061216d818461244490919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156121ac576121ab613ba2565b5b6040519080825280602002602001820160405280156121da5781602001602082028036833780820191505090505b50905030816000815181106121f2576121f1613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612299573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122bd9190613be6565b816001815181106122d1576122d0613411565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233830601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115eb565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239c959493929190613d0c565b600060405180830381600087803b1580156123b657600080fd5b505af11580156123ca573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806123fa576123f961248e565b5b6124058484846124cb565b8061241357612412612696565b5b50505050565b60008060006124266126aa565b9150915061243d818361244490919063ffffffff16565b9250505090565b600061248683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612706565b905092915050565b6000600c541480156124a257506000600d54145b6124c957600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806124dd87612769565b95509550955095509550955061253b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127d190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125d085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061261c81612879565b6126268483612936565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126839190612d58565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000662386f26fc1000090506126dc662386f26fc1000060065461244490919063ffffffff16565b8210156126f957600654662386f26fc10000935093505050612702565b81819350935050505b9091565b6000808311829061274d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127449190612b99565b60405180910390fd5b506000838561275c9190613152565b9050809150509392505050565b60008060008060008060008060006127868a600c54600d54612970565b9250925092506000612796612419565b905060008060006127a98e878787612a06565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061281383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b600080828461282a9190613a16565b90508381101561286f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161286690613db2565b60405180910390fd5b8091505092915050565b6000612883612419565b9050600061289a8284612a8f90919063ffffffff16565b90506128ee81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461281b90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61294b826006546127d190919063ffffffff16565b6006819055506129668160075461281b90919063ffffffff16565b6007819055505050565b60008060008061299c606461298e888a612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129c660646129b8888b612a8f90919063ffffffff16565b61244490919063ffffffff16565b905060006129ef826129e1858c6127d190919063ffffffff16565b6127d190919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612a1f8589612a8f90919063ffffffff16565b90506000612a368689612a8f90919063ffffffff16565b90506000612a4d8789612a8f90919063ffffffff16565b90506000612a7682612a6885876127d190919063ffffffff16565b6127d190919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612aa15760009050612b03565b60008284612aaf91906130e1565b9050828482612abe9190613152565b14612afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af590613e44565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b43578082015181840152602081019050612b28565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b6b82612b09565b612b758185612b14565b9350612b85818560208601612b25565b612b8e81612b4f565b840191505092915050565b60006020820190508181036000830152612bb38184612b60565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bf082612bc5565b9050919050565b612c0081612be5565b8114612c0b57600080fd5b50565b600081359050612c1d81612bf7565b92915050565b6000819050919050565b612c3681612c23565b8114612c4157600080fd5b50565b600081359050612c5381612c2d565b92915050565b60008060408385031215612c7057612c6f612bbb565b5b6000612c7e85828601612c0e565b9250506020612c8f85828601612c44565b9150509250929050565b60008115159050919050565b612cae81612c99565b82525050565b6000602082019050612cc96000830184612ca5565b92915050565b6000819050919050565b6000612cf4612cef612cea84612bc5565b612ccf565b612bc5565b9050919050565b6000612d0682612cd9565b9050919050565b6000612d1882612cfb565b9050919050565b612d2881612d0d565b82525050565b6000602082019050612d436000830184612d1f565b92915050565b612d5281612c23565b82525050565b6000602082019050612d6d6000830184612d49565b92915050565b600080600060608486031215612d8c57612d8b612bbb565b5b6000612d9a86828701612c0e565b9350506020612dab86828701612c0e565b9250506040612dbc86828701612c44565b9150509250925092565b600060ff82169050919050565b612ddc81612dc6565b82525050565b6000602082019050612df76000830184612dd3565b92915050565b612e0681612be5565b82525050565b6000602082019050612e216000830184612dfd565b92915050565b612e3081612c99565b8114612e3b57600080fd5b50565b600081359050612e4d81612e27565b92915050565b600060208284031215612e6957612e68612bbb565b5b6000612e7784828501612e3e565b91505092915050565b600060208284031215612e9657612e95612bbb565b5b6000612ea484828501612c0e565b91505092915050565b600060208284031215612ec357612ec2612bbb565b5b6000612ed184828501612c44565b91505092915050565b60008060008060808587031215612ef457612ef3612bbb565b5b6000612f0287828801612c44565b9450506020612f1387828801612c44565b9350506040612f2487828801612c44565b9250506060612f3587828801612c44565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612f6657612f65612f41565b5b8235905067ffffffffffffffff811115612f8357612f82612f46565b5b602083019150836020820283011115612f9f57612f9e612f4b565b5b9250929050565b600080600060408486031215612fbf57612fbe612bbb565b5b600084013567ffffffffffffffff811115612fdd57612fdc612bc0565b5b612fe986828701612f50565b93509350506020612ffc86828701612e3e565b9150509250925092565b6000806040838503121561301d5761301c612bbb565b5b600061302b85828601612c0e565b925050602061303c85828601612c0e565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061307c602083612b14565b915061308782613046565b602082019050919050565b600060208201905081810360008301526130ab8161306f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006130ec82612c23565b91506130f783612c23565b925082820261310581612c23565b9150828204841483151761311c5761311b6130b2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061315d82612c23565b915061316883612c23565b92508261317857613177613123565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20312500000000000000000000000000000000000000602082015250565b60006131df602d83612b14565b91506131ea82613183565b604082019050919050565b6000602082019050818103600083015261320e816131d2565b9050919050565b7f4275792072657761726473206d75737420626520302500000000000000000000600082015250565b600061324b601683612b14565b915061325682613215565b602082019050919050565b6000602082019050818103600083015261327a8161323e565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e64203560008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b60006132dd602183612b14565b91506132e882613281565b604082019050919050565b6000602082019050818103600083015261330c816132d0565b9050919050565b7f53656c6c2072657761726473206d757374206265203025000000000000000000600082015250565b6000613349601783612b14565b915061335482613313565b602082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e642060008201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b60006133db602283612b14565b91506133e68261337f565b604082019050919050565b6000602082019050818103600083015261340a816133ce565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061344b82612c23565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347d5761347c6130b2565b5b600182019050919050565b7f43616e6e6f7420736574206d617857616c6c6574416d6f756e74206c6f77657260008201527f207468616e203125000000000000000000000000000000000000000000000000602082015250565b60006134e4602883612b14565b91506134ef82613488565b604082019050919050565b60006020820190508181036000830152613513816134d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613576602683612b14565b91506135818261351a565b604082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613608602483612b14565b9150613613826135ac565b604082019050919050565b60006020820190508181036000830152613637816135fb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061369a602283612b14565b91506136a58261363e565b604082019050919050565b600060208201905081810360008301526136c98161368d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061372c602583612b14565b9150613737826136d0565b604082019050919050565b6000602082019050818103600083015261375b8161371f565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006137be602383612b14565b91506137c982613762565b604082019050919050565b600060208201905081810360008301526137ed816137b1565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613850602983612b14565b915061385b826137f4565b604082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b60006138e2603f83612b14565b91506138ed82613886565b604082019050919050565b60006020820190508181036000830152613911816138d5565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061394e601c83612b14565b915061395982613918565b602082019050919050565b6000602082019050818103600083015261397d81613941565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b60006139e0602383612b14565b91506139eb82613984565b604082019050919050565b60006020820190508181036000830152613a0f816139d3565b9050919050565b6000613a2182612c23565b9150613a2c83612c23565b9250828201905080821115613a4457613a436130b2565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613aa6602383612b14565b9150613ab182613a4a565b604082019050919050565b60006020820190508181036000830152613ad581613a99565b9050919050565b6000613ae782612c23565b9150613af283612c23565b9250828203905081811115613b0a57613b096130b2565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b6c602a83612b14565b9150613b7782613b10565b604082019050919050565b60006020820190508181036000830152613b9b81613b5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613be081612bf7565b92915050565b600060208284031215613bfc57613bfb612bbb565b5b6000613c0a84828501613bd1565b91505092915050565b6000819050919050565b6000613c38613c33613c2e84613c13565b612ccf565b612c23565b9050919050565b613c4881613c1d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8381612be5565b82525050565b6000613c958383613c7a565b60208301905092915050565b6000602082019050919050565b6000613cb982613c4e565b613cc38185613c59565b9350613cce83613c6a565b8060005b83811015613cff578151613ce68882613c89565b9750613cf183613ca1565b925050600181019050613cd2565b5085935050505092915050565b600060a082019050613d216000830188612d49565b613d2e6020830187613c3f565b8181036040830152613d408186613cae565b9050613d4f6060830185612dfd565b613d5c6080830184612d49565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d9c601b83612b14565b9150613da782613d66565b602082019050919050565b60006020820190508181036000830152613dcb81613d8f565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e2e602183612b14565b9150613e3982613dd2565b604082019050919050565b60006020820190508181036000830152613e5d81613e21565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202d136d202ac26282face63800fbeef8a60dc0b94ef3486dfd85c6806c2e3d98464736f6c63430008110033
Deployed Bytecode Sourcemap
4095:13929:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6603:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7535:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5439:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7737:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5744:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6791:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5487:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17121:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12565:235;;;;;;;;;;;;;:::i;:::-;;6987:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1568:148;;;;;;;;;;;;;:::i;:::-;;17262:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5638:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5178:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1352:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12210:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5690:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16929:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16217:659;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7134:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5140:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12320:236;;;;;;;;;;;;;:::i;:::-;;17785:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7342:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17523:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1725:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6603:83;6640:13;6673:5;;;;;;;;;;;;;;;;;6666:12;;6603:83;:::o;7535:193::-;7637:4;7659:39;7668:12;:10;:12::i;:::-;7682:7;7691:6;7659:8;:39::i;:::-;7716:4;7709:11;;7535:193;;;;:::o;5439:41::-;;;;;;;;;;;;;:::o;6883:95::-;6936:7;4633:16;6956:14;;6883:95;:::o;7737:446::-;7869:4;7886:36;7896:6;7904:9;7915:6;7886:9;:36::i;:::-;7933:220;7956:6;7977:12;:10;:12::i;:::-;8004:138;8060:6;8004:138;;;;;;;;;;;;;;;;;:11;:19;8016:6;8004:19;;;;;;;;;;;;;;;:33;8024:12;:10;:12::i;:::-;8004:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7933:8;:220::i;:::-;8171:4;8164:11;;7737:446;;;;;:::o;5744:50::-;;;;:::o;6791:83::-;6832:5;4306:1;6850:16;;6791:83;:::o;5487:28::-;;;;;;;;;;;;;:::o;17121:101::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17202:12:::1;17188:11;;:26;;;;;;;;;;;;;;;;;;17121:101:::0;:::o;12565:235::-;12631:19;;;;;;;;;;;12615:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12670:17;;;;;;;;;;;12654:33;;:12;:10;:12::i;:::-;:33;;;12615:72;12607:81;;;;;;12699:26;12728:21;12699:50;;12760:32;12773:18;12760:12;:32::i;:::-;12596:204;12565:235::o;6987:138::-;7053:7;7080:37;7100:7;:16;7108:7;7100:16;;;;;;;;;;;;;;;;7080:19;:37::i;:::-;7073:44;;6987:138;;;:::o;1568:148::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1675:1:::1;1638:40;;1659:6;::::0;::::1;;;;;;;;1638:40;;;;;;;;;;;;1706:1;1689:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1568:148::o:0;17262:252::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17389:3:::1;17384:1;17368:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17367:25;;;;:::i;:::-;17351:11;:42;;17329:137;;;;;;;;;;;;:::i;:::-;;;;;;;;;17485:11;17470:12;:26;;;;17262:252:::0;:::o;5638:44::-;;;;:::o;5178:43::-;;;;;;;;;;;;;;;;;:::o;1352:79::-;1390:7;1417:6;;;;;;;;;;;1410:13;;1352:79;:::o;12210:101::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12291:12:::1;12277:11;;:26;;;;;;;;;;;;;;;;;;12210:101:::0;:::o;5690:46::-;;;;:::o;6695:87::-;6734:13;6767:7;;;;;;;;;;;;;;;;;6760:14;;6695:87;:::o;16929:139::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17042:18:::1;17020:19;:40;;;;16929:139:::0;:::o;16217:659::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16376:1:::1;16359:13;:18;;:40;;;;;16398:1;16381:13;:18;;16359:40;16351:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;16460:1;16445:11;:16;;:36;;;;;16480:1;16465:11;:16;;16445:36;16437:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;16556:1;16538:14;:19;;:42;;;;;16579:1;16561:14;:19;;16538:42;16530:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;16643:1;16627:12;:17;;:38;;;;;16664:1;16648:12;:17;;16627:38;16619:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16734:13;16717:14;:30;;;;16776:14;16758:15;:32;;;;16816:11;16801:12;:26;;;;16854:12;16838:13;:28;;;;16217:659:::0;;;;:::o;7134:199::-;7239:4;7261:42;7271:12;:10;:12::i;:::-;7285:9;7296:6;7261:9;:42::i;:::-;7321:4;7314:11;;7134:199;;;;:::o;5140:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12320:236::-;12386:19;;;;;;;;;;;12370:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12425:17;;;;;;;;;;;12409:33;;:12;:10;:12::i;:::-;:33;;;12370:72;12362:81;;;;;;12454:23;12480:24;12498:4;12480:9;:24::i;:::-;12454:50;;12515:33;12532:15;12515:16;:33::i;:::-;12351:205;12320:236::o;17785:234::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17902:9:::1;17898:114;17921:8;;:15;;17917:1;:19;17898:114;;;17992:8;17958:18;:31;17977:8;;17986:1;17977:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17958:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17938:3;;;;;:::i;:::-;;;;17898:114;;;;17785:234:::0;;;:::o;7342:184::-;7459:7;7491:11;:18;7503:5;7491:18;;;;;;;;;;;;;;;:27;7510:7;7491:27;;;;;;;;;;;;;;;;7484:34;;7342:184;;;;:::o;17523:253::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17655:3:::1;17650:1;17634:13;:11;:13::i;:::-;:17;;;;:::i;:::-;17633:25;;;;:::i;:::-;17615:13;:44;;17593:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;17755:13;17738:14;:30;;;;17523:253:::0;:::o;1725:244::-;1490:12;:10;:12::i;:::-;1480:22;;:6;;;;;;;;;;:22;;;1472:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1834:1:::1;1814:22;;:8;:22;;::::0;1806:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1924:8;1895:38;;1916:6;::::0;::::1;;;;;;;;1895:38;;;;;;;;;;;;1953:8;1944:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1725:244:::0;:::o;101:98::-;154:7;181:10;174:17;;101:98;:::o;8880:369::-;9024:1;9007:19;;:5;:19;;;8999:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9105:1;9086:21;;:7;:21;;;9078:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9187:6;9157:11;:18;9169:5;9157:18;;;;;;;;;;;;;;;:27;9176:7;9157:27;;;;;;;;;;;;;;;:36;;;;9225:7;9209:32;;9218:5;9209:32;;;9234:6;9209:32;;;;;;:::i;:::-;;;;;;;;8880:369;;;:::o;9258:2343::-;9396:1;9380:18;;:4;:18;;;9372:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9473:1;9459:16;;:2;:16;;;9451:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9543:1;9534:6;:10;9526:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9616:7;:5;:7::i;:::-;9608:15;;:4;:15;;;;:32;;;;;9633:7;:5;:7::i;:::-;9627:13;;:2;:13;;;;9608:32;9604:1265;;;9698:11;;;;;;;;;;;9693:144;;9746:7;:5;:7::i;:::-;9738:15;;:4;:15;;;9730:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9693:144;9872:12;;9862:6;:22;;9854:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9941:4;:10;9946:4;9941:10;;;;;;;;;;;;;;;;;;;;;;;;;9940:11;:24;;;;;9956:4;:8;9961:2;9956:8;;;;;;;;;;;;;;;;;;;;;;;;;9955:9;9940:24;9932:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10031:13;;;;;;;;;;;10025:19;;:2;:19;;;10022:146;;10098:14;;10089:6;10073:13;10083:2;10073:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10065:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10022:146;10185:28;10216:24;10234:4;10216:9;:24::i;:::-;10185:55;;10255:12;10294:19;;10270:20;:43;;10255:58;;10358:12;;10334:20;:36;10331:124;;10427:12;;10404:35;;10331:124;10476:7;:18;;;;;10488:6;;;;;;;;;;10487:7;10476:18;:43;;;;;10506:13;;;;;;;;;;;10498:21;;:4;:21;;;;10476:43;:58;;;;;10523:11;;;;;;;;;;;10476:58;:87;;;;;10539:18;:24;10558:4;10539:24;;;;;;;;;;;;;;;;;;;;;;;;;10538:25;10476:87;:114;;;;;10568:18;:22;10587:2;10568:22;;;;;;;;;;;;;;;;;;;;;;;;;10567:23;10476:114;10472:386;;;10611:38;10628:20;10611:16;:38::i;:::-;10668:26;10697:21;10668:50;;10762:1;10741:18;:22;10737:106;;;10788:35;10801:21;10788:12;:35::i;:::-;10737:106;10592:266;10472:386;9642:1227;;9604:1265;10882:12;10897:4;10882:19;;10947:18;:24;10966:4;10947:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10975:18;:22;10994:2;10975:22;;;;;;;;;;;;;;;;;;;;;;;;;10947:50;10946:102;;;;11011:13;;;;;;;;;;;11003:21;;:4;:21;;;;:44;;;;;11034:13;;;;;;;;;;;11028:19;;:2;:19;;;;11003:44;10946:102;10942:597;;;11075:5;11065:15;;10942:597;;;11159:13;;;;;;;;;;;11151:21;;:4;:21;;;:55;;;;;11190:15;;;;;;;;;;;11176:30;;:2;:30;;;;11151:55;11148:162;;;11239:14;;11227:9;:26;;;;11282:12;;11272:7;:22;;;;11148:162;11370:13;;;;;;;;;;;11364:19;;:2;:19;;;:55;;;;;11403:15;;;;;;;;;;;11387:32;;:4;:32;;;;11364:55;11360:165;;;11452:15;;11440:9;:27;;;;11496:13;;11486:7;:23;;;;11360:165;10942:597;11552:41;11567:4;11573:2;11577:6;11585:7;11552:14;:41::i;:::-;9361:2240;9258:2343;;;:::o;2337:224::-;2457:7;2490:1;2485;:6;;2493:12;2477:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2517:9;2533:1;2529;:5;;;;:::i;:::-;2517:17;;2552:1;2545:8;;;2337:224;;;;;:::o;12102:99::-;12159:17;;;;;;;;;;;:26;;:34;12186:6;12159:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12102:99;:::o;8192:323::-;8287:7;8345;;8334;:18;;8312:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8433:19;8455:10;:8;:10::i;:::-;8433:32;;8483:24;8495:11;8483:7;:11;;:24;;;;:::i;:::-;8476:31;;;8192:323;;;:::o;11610:483::-;5898:4;5889:6;;:13;;;;;;;;;;;;;;;;;;11688:21:::1;11726:1;11712:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11688:40;;11757:4;11739;11744:1;11739:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11783:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11773:4;11778:1;11773:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11816:62;11833:4;11848:15;;;;;;;;;;;11866:11;11816:8;:62::i;:::-;11889:15;;;;;;;;;;;:66;;;11970:11;11996:1;12012:4;12039;12059:15;11889:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11677:416;5934:5:::0;5925:6;;:14;;;;;;;;;;;;;;;;;;11610:483;:::o;12809:282::-;12965:7;12960:28;;12974:14;:12;:14::i;:::-;12960:28;12999:44;13017:6;13025:9;13036:6;12999:17;:44::i;:::-;13059:7;13054:29;;13068:15;:13;:15::i;:::-;13054:29;12809:282;;;;:::o;15778:164::-;15820:7;15841:15;15858;15877:19;:17;:19::i;:::-;15840:56;;;;15914:20;15926:7;15914;:11;;:20;;;;:::i;:::-;15907:27;;;;15778:164;:::o;2825:132::-;2883:7;2910:39;2914:1;2917;2910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2903:46;;2825:132;;;;:::o;8524:221::-;8584:1;8571:9;;:14;:30;;;;;8600:1;8589:7;;:12;8571:30;8603:7;8567:43;8643:9;;8623:17;:29;;;;8681:7;;8663:15;:25;;;;8714:1;8702:9;:13;;;;8736:1;8726:7;:11;;;;8524:221;:::o;13100:610::-;13247:15;13277:23;13315:12;13342:23;13380:12;13407:13;13434:19;13445:7;13434:10;:19::i;:::-;13232:221;;;;;;;;;;;;13482:28;13502:7;13482;:15;13490:6;13482:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13464:7;:15;13472:6;13464:15;;;;;;;;;;;;;;;:46;;;;13542:39;13565:15;13542:7;:18;13550:9;13542:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13521:7;:18;13529:9;13521:18;;;;;;;;;;;;;;;:60;;;;13592:16;13602:5;13592:9;:16::i;:::-;13619:23;13631:4;13637;13619:11;:23::i;:::-;13675:9;13658:44;;13667:6;13658:44;;;13686:15;13658:44;;;;;;:::i;:::-;;;;;;;;13221:489;;;;;;13100:610;;;:::o;8754:117::-;8810:17;;8798:9;:29;;;;8848:15;;8838:7;:25;;;;8754:117::o;15951:257::-;16002:7;16011;16031:15;16049:7;;16031:25;;16067:15;4633:16;16067:25;;16117:20;4633:16;16117:7;;:11;;:20;;;;:::i;:::-;16107:7;:30;16103:61;;;16147:7;;4633:16;16139:25;;;;;;;;16103:61;16183:7;16192;16175:25;;;;;;15951:257;;;:::o;2966:223::-;3086:7;3118:1;3114;:5;3121:12;3106:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3145:9;3161:1;3157;:5;;;;:::i;:::-;3145:17;;3180:1;3173:8;;;2966:223;;;;;:::o;14133:615::-;14233:7;14255;14277;14299;14321;14343;14379:23;14404:12;14418:13;14448:40;14460:7;14469:9;;14480:7;;14448:11;:40::i;:::-;14378:110;;;;;;14499:19;14521:10;:8;:10::i;:::-;14499:32;;14543:15;14560:23;14585:12;14614:46;14626:7;14635:4;14641:5;14648:11;14614;:46::i;:::-;14542:118;;;;;;14679:7;14688:15;14705:4;14711:15;14728:4;14734:5;14671:69;;;;;;;;;;;;;;;;;;;14133:615;;;;;;;:::o;2192:136::-;2250:7;2277:43;2281:1;2284;2277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2270:50;;2192:136;;;;:::o;2004:179::-;2062:7;2082:9;2098:1;2094;:5;;;;:::i;:::-;2082:17;;2123:1;2118;:6;;2110:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2174:1;2167:8;;;2004:179;;;;:::o;13719:211::-;13772:19;13794:10;:8;:10::i;:::-;13772:32;;13815:13;13831:22;13841:11;13831:5;:9;;:22;;;;:::i;:::-;13815:38;;13889:33;13916:5;13889:7;:22;13905:4;13889:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13864:7;:22;13880:4;13864:22;;;;;;;;;;;;;;;:58;;;;13761:169;;13719:211;:::o;13939:147::-;14017:17;14029:4;14017:7;;:11;;:17;;;;:::i;:::-;14007:7;:27;;;;14058:20;14073:4;14058:10;;:14;;:20;;;;:::i;:::-;14045:10;:33;;;;13939:147;;:::o;14757:469::-;14926:7;14948;14970;15005:12;15020:30;15046:3;15020:21;15032:8;15020:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15005:45;;15061:13;15077:28;15101:3;15077:19;15089:6;15077:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15061:44;;15116:23;15142:28;15164:5;15142:17;15154:4;15142:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15116:54;;15189:15;15206:4;15212:5;15181:37;;;;;;;;;14757:469;;;;;;;:::o;15235:534::-;15429:7;15451;15473;15508:15;15526:24;15538:11;15526:7;:11;;:24;;;;:::i;:::-;15508:42;;15561:12;15576:21;15585:11;15576:4;:8;;:21;;;;:::i;:::-;15561:36;;15608:13;15624:22;15634:11;15624:5;:9;;:22;;;;:::i;:::-;15608:38;;15657:23;15683:28;15705:5;15683:17;15695:4;15683:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15657:54;;15730:7;15739:15;15756:4;15722:39;;;;;;;;;;15235:534;;;;;;;;:::o;2570:246::-;2628:7;2657:1;2652;:6;2648:47;;2682:1;2675:8;;;;2648:47;2705:9;2721:1;2717;:5;;;;:::i;:::-;2705:17;;2750:1;2745;2741;:5;;;;:::i;:::-;:10;2733:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2807:1;2800:8;;;2570:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:116::-;6248:21;6263:5;6248:21;:::i;:::-;6241:5;6238:32;6228:60;;6284:1;6281;6274:12;6228:60;6178:116;:::o;6300:133::-;6343:5;6381:6;6368:20;6359:29;;6397:30;6421:5;6397:30;:::i;:::-;6300:133;;;;:::o;6439:323::-;6495:6;6544:2;6532:9;6523:7;6519:23;6515:32;6512:119;;;6550:79;;:::i;:::-;6512:119;6670:1;6695:50;6737:7;6728:6;6717:9;6713:22;6695:50;:::i;:::-;6685:60;;6641:114;6439:323;;;;:::o;6768:329::-;6827:6;6876:2;6864:9;6855:7;6851:23;6847:32;6844:119;;;6882:79;;:::i;:::-;6844:119;7002:1;7027:53;7072:7;7063:6;7052:9;7048:22;7027:53;:::i;:::-;7017:63;;6973:117;6768:329;;;;:::o;7103:::-;7162:6;7211:2;7199:9;7190:7;7186:23;7182:32;7179:119;;;7217:79;;:::i;:::-;7179:119;7337:1;7362:53;7407:7;7398:6;7387:9;7383:22;7362:53;:::i;:::-;7352:63;;7308:117;7103:329;;;;:::o;7438:765::-;7524:6;7532;7540;7548;7597:3;7585:9;7576:7;7572:23;7568:33;7565:120;;;7604:79;;:::i;:::-;7565:120;7724:1;7749:53;7794:7;7785:6;7774:9;7770:22;7749:53;:::i;:::-;7739:63;;7695:117;7851:2;7877:53;7922:7;7913:6;7902:9;7898:22;7877:53;:::i;:::-;7867:63;;7822:118;7979:2;8005:53;8050:7;8041:6;8030:9;8026:22;8005:53;:::i;:::-;7995:63;;7950:118;8107:2;8133:53;8178:7;8169:6;8158:9;8154:22;8133:53;:::i;:::-;8123:63;;8078:118;7438:765;;;;;;;:::o;8209:117::-;8318:1;8315;8308:12;8332:117;8441:1;8438;8431:12;8455:117;8564:1;8561;8554:12;8595:568;8668:8;8678:6;8728:3;8721:4;8713:6;8709:17;8705:27;8695:122;;8736:79;;:::i;:::-;8695:122;8849:6;8836:20;8826:30;;8879:18;8871:6;8868:30;8865:117;;;8901:79;;:::i;:::-;8865:117;9015:4;9007:6;9003:17;8991:29;;9069:3;9061:4;9053:6;9049:17;9039:8;9035:32;9032:41;9029:128;;;9076:79;;:::i;:::-;9029:128;8595:568;;;;;:::o;9169:698::-;9261:6;9269;9277;9326:2;9314:9;9305:7;9301:23;9297:32;9294:119;;;9332:79;;:::i;:::-;9294:119;9480:1;9469:9;9465:17;9452:31;9510:18;9502:6;9499:30;9496:117;;;9532:79;;:::i;:::-;9496:117;9645:80;9717:7;9708:6;9697:9;9693:22;9645:80;:::i;:::-;9627:98;;;;9423:312;9774:2;9800:50;9842:7;9833:6;9822:9;9818:22;9800:50;:::i;:::-;9790:60;;9745:115;9169:698;;;;;:::o;9873:474::-;9941:6;9949;9998:2;9986:9;9977:7;9973:23;9969:32;9966:119;;;10004:79;;:::i;:::-;9966:119;10124:1;10149:53;10194:7;10185:6;10174:9;10170:22;10149:53;:::i;:::-;10139:63;;10095:117;10251:2;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10222:118;9873:474;;;;;:::o;10353:182::-;10493:34;10489:1;10481:6;10477:14;10470:58;10353:182;:::o;10541:366::-;10683:3;10704:67;10768:2;10763:3;10704:67;:::i;:::-;10697:74;;10780:93;10869:3;10780:93;:::i;:::-;10898:2;10893:3;10889:12;10882:19;;10541:366;;;:::o;10913:419::-;11079:4;11117:2;11106:9;11102:18;11094:26;;11166:9;11160:4;11156:20;11152:1;11141:9;11137:17;11130:47;11194:131;11320:4;11194:131;:::i;:::-;11186:139;;10913:419;;;:::o;11338:180::-;11386:77;11383:1;11376:88;11483:4;11480:1;11473:15;11507:4;11504:1;11497:15;11524:410;11564:7;11587:20;11605:1;11587:20;:::i;:::-;11582:25;;11621:20;11639:1;11621:20;:::i;:::-;11616:25;;11676:1;11673;11669:9;11698:30;11716:11;11698:30;:::i;:::-;11687:41;;11877:1;11868:7;11864:15;11861:1;11858:22;11838:1;11831:9;11811:83;11788:139;;11907:18;;:::i;:::-;11788:139;11572:362;11524:410;;;;:::o;11940:180::-;11988:77;11985:1;11978:88;12085:4;12082:1;12075:15;12109:4;12106:1;12099:15;12126:185;12166:1;12183:20;12201:1;12183:20;:::i;:::-;12178:25;;12217:20;12235:1;12217:20;:::i;:::-;12212:25;;12256:1;12246:35;;12261:18;;:::i;:::-;12246:35;12303:1;12300;12296:9;12291:14;;12126:185;;;;:::o;12317:232::-;12457:34;12453:1;12445:6;12441:14;12434:58;12526:15;12521:2;12513:6;12509:15;12502:40;12317:232;:::o;12555:366::-;12697:3;12718:67;12782:2;12777:3;12718:67;:::i;:::-;12711:74;;12794:93;12883:3;12794:93;:::i;:::-;12912:2;12907:3;12903:12;12896:19;;12555:366;;;:::o;12927:419::-;13093:4;13131:2;13120:9;13116:18;13108:26;;13180:9;13174:4;13170:20;13166:1;13155:9;13151:17;13144:47;13208:131;13334:4;13208:131;:::i;:::-;13200:139;;12927:419;;;:::o;13352:172::-;13492:24;13488:1;13480:6;13476:14;13469:48;13352:172;:::o;13530:366::-;13672:3;13693:67;13757:2;13752:3;13693:67;:::i;:::-;13686:74;;13769:93;13858:3;13769:93;:::i;:::-;13887:2;13882:3;13878:12;13871:19;;13530:366;;;:::o;13902:419::-;14068:4;14106:2;14095:9;14091:18;14083:26;;14155:9;14149:4;14145:20;14141:1;14130:9;14126:17;14119:47;14183:131;14309:4;14183:131;:::i;:::-;14175:139;;13902:419;;;:::o;14327:220::-;14467:34;14463:1;14455:6;14451:14;14444:58;14536:3;14531:2;14523:6;14519:15;14512:28;14327:220;:::o;14553:366::-;14695:3;14716:67;14780:2;14775:3;14716:67;:::i;:::-;14709:74;;14792:93;14881:3;14792:93;:::i;:::-;14910:2;14905:3;14901:12;14894:19;;14553:366;;;:::o;14925:419::-;15091:4;15129:2;15118:9;15114:18;15106:26;;15178:9;15172:4;15168:20;15164:1;15153:9;15149:17;15142:47;15206:131;15332:4;15206:131;:::i;:::-;15198:139;;14925:419;;;:::o;15350:173::-;15490:25;15486:1;15478:6;15474:14;15467:49;15350:173;:::o;15529:366::-;15671:3;15692:67;15756:2;15751:3;15692:67;:::i;:::-;15685:74;;15768:93;15857:3;15768:93;:::i;:::-;15886:2;15881:3;15877:12;15870:19;;15529:366;;;:::o;15901:419::-;16067:4;16105:2;16094:9;16090:18;16082:26;;16154:9;16148:4;16144:20;16140:1;16129:9;16125:17;16118:47;16182:131;16308:4;16182:131;:::i;:::-;16174:139;;15901:419;;;:::o;16326:221::-;16466:34;16462:1;16454:6;16450:14;16443:58;16535:4;16530:2;16522:6;16518:15;16511:29;16326:221;:::o;16553:366::-;16695:3;16716:67;16780:2;16775:3;16716:67;:::i;:::-;16709:74;;16792:93;16881:3;16792:93;:::i;:::-;16910:2;16905:3;16901:12;16894:19;;16553:366;;;:::o;16925:419::-;17091:4;17129:2;17118:9;17114:18;17106:26;;17178:9;17172:4;17168:20;17164:1;17153:9;17149:17;17142:47;17206:131;17332:4;17206:131;:::i;:::-;17198:139;;16925:419;;;:::o;17350:180::-;17398:77;17395:1;17388:88;17495:4;17492:1;17485:15;17519:4;17516:1;17509:15;17536:233;17575:3;17598:24;17616:5;17598:24;:::i;:::-;17589:33;;17644:66;17637:5;17634:77;17631:103;;17714:18;;:::i;:::-;17631:103;17761:1;17754:5;17750:13;17743:20;;17536:233;;;:::o;17775:227::-;17915:34;17911:1;17903:6;17899:14;17892:58;17984:10;17979:2;17971:6;17967:15;17960:35;17775:227;:::o;18008:366::-;18150:3;18171:67;18235:2;18230:3;18171:67;:::i;:::-;18164:74;;18247:93;18336:3;18247:93;:::i;:::-;18365:2;18360:3;18356:12;18349:19;;18008:366;;;:::o;18380:419::-;18546:4;18584:2;18573:9;18569:18;18561:26;;18633:9;18627:4;18623:20;18619:1;18608:9;18604:17;18597:47;18661:131;18787:4;18661:131;:::i;:::-;18653:139;;18380:419;;;:::o;18805:225::-;18945:34;18941:1;18933:6;18929:14;18922:58;19014:8;19009:2;19001:6;18997:15;18990:33;18805:225;:::o;19036:366::-;19178:3;19199:67;19263:2;19258:3;19199:67;:::i;:::-;19192:74;;19275:93;19364:3;19275:93;:::i;:::-;19393:2;19388:3;19384:12;19377:19;;19036:366;;;:::o;19408:419::-;19574:4;19612:2;19601:9;19597:18;19589:26;;19661:9;19655:4;19651:20;19647:1;19636:9;19632:17;19625:47;19689:131;19815:4;19689:131;:::i;:::-;19681:139;;19408:419;;;:::o;19833:223::-;19973:34;19969:1;19961:6;19957:14;19950:58;20042:6;20037:2;20029:6;20025:15;20018:31;19833:223;:::o;20062:366::-;20204:3;20225:67;20289:2;20284:3;20225:67;:::i;:::-;20218:74;;20301:93;20390:3;20301:93;:::i;:::-;20419:2;20414:3;20410:12;20403:19;;20062:366;;;:::o;20434:419::-;20600:4;20638:2;20627:9;20623:18;20615:26;;20687:9;20681:4;20677:20;20673:1;20662:9;20658:17;20651:47;20715:131;20841:4;20715:131;:::i;:::-;20707:139;;20434:419;;;:::o;20859:221::-;20999:34;20995:1;20987:6;20983:14;20976:58;21068:4;21063:2;21055:6;21051:15;21044:29;20859:221;:::o;21086:366::-;21228:3;21249:67;21313:2;21308:3;21249:67;:::i;:::-;21242:74;;21325:93;21414:3;21325:93;:::i;:::-;21443:2;21438:3;21434:12;21427:19;;21086:366;;;:::o;21458:419::-;21624:4;21662:2;21651:9;21647:18;21639:26;;21711:9;21705:4;21701:20;21697:1;21686:9;21682:17;21675:47;21739:131;21865:4;21739:131;:::i;:::-;21731:139;;21458:419;;;:::o;21883:224::-;22023:34;22019:1;22011:6;22007:14;22000:58;22092:7;22087:2;22079:6;22075:15;22068:32;21883:224;:::o;22113:366::-;22255:3;22276:67;22340:2;22335:3;22276:67;:::i;:::-;22269:74;;22352:93;22441:3;22352:93;:::i;:::-;22470:2;22465:3;22461:12;22454:19;;22113:366;;;:::o;22485:419::-;22651:4;22689:2;22678:9;22674:18;22666:26;;22738:9;22732:4;22728:20;22724:1;22713:9;22709:17;22702:47;22766:131;22892:4;22766:131;:::i;:::-;22758:139;;22485:419;;;:::o;22910:222::-;23050:34;23046:1;23038:6;23034:14;23027:58;23119:5;23114:2;23106:6;23102:15;23095:30;22910:222;:::o;23138:366::-;23280:3;23301:67;23365:2;23360:3;23301:67;:::i;:::-;23294:74;;23377:93;23466:3;23377:93;:::i;:::-;23495:2;23490:3;23486:12;23479:19;;23138:366;;;:::o;23510:419::-;23676:4;23714:2;23703:9;23699:18;23691:26;;23763:9;23757:4;23753:20;23749:1;23738:9;23734:17;23727:47;23791:131;23917:4;23791:131;:::i;:::-;23783:139;;23510:419;;;:::o;23935:228::-;24075:34;24071:1;24063:6;24059:14;24052:58;24144:11;24139:2;24131:6;24127:15;24120:36;23935:228;:::o;24169:366::-;24311:3;24332:67;24396:2;24391:3;24332:67;:::i;:::-;24325:74;;24408:93;24497:3;24408:93;:::i;:::-;24526:2;24521:3;24517:12;24510:19;;24169:366;;;:::o;24541:419::-;24707:4;24745:2;24734:9;24730:18;24722:26;;24794:9;24788:4;24784:20;24780:1;24769:9;24765:17;24758:47;24822:131;24948:4;24822:131;:::i;:::-;24814:139;;24541:419;;;:::o;24966:250::-;25106:34;25102:1;25094:6;25090:14;25083:58;25175:33;25170:2;25162:6;25158:15;25151:58;24966:250;:::o;25222:366::-;25364:3;25385:67;25449:2;25444:3;25385:67;:::i;:::-;25378:74;;25461:93;25550:3;25461:93;:::i;:::-;25579:2;25574:3;25570:12;25563:19;;25222:366;;;:::o;25594:419::-;25760:4;25798:2;25787:9;25783:18;25775:26;;25847:9;25841:4;25837:20;25833:1;25822:9;25818:17;25811:47;25875:131;26001:4;25875:131;:::i;:::-;25867:139;;25594:419;;;:::o;26019:178::-;26159:30;26155:1;26147:6;26143:14;26136:54;26019:178;:::o;26203:366::-;26345:3;26366:67;26430:2;26425:3;26366:67;:::i;:::-;26359:74;;26442:93;26531:3;26442:93;:::i;:::-;26560:2;26555:3;26551:12;26544:19;;26203:366;;;:::o;26575:419::-;26741:4;26779:2;26768:9;26764:18;26756:26;;26828:9;26822:4;26818:20;26814:1;26803:9;26799:17;26792:47;26856:131;26982:4;26856:131;:::i;:::-;26848:139;;26575:419;;;:::o;27000:222::-;27140:34;27136:1;27128:6;27124:14;27117:58;27209:5;27204:2;27196:6;27192:15;27185:30;27000:222;:::o;27228:366::-;27370:3;27391:67;27455:2;27450:3;27391:67;:::i;:::-;27384:74;;27467:93;27556:3;27467:93;:::i;:::-;27585:2;27580:3;27576:12;27569:19;;27228:366;;;:::o;27600:419::-;27766:4;27804:2;27793:9;27789:18;27781:26;;27853:9;27847:4;27843:20;27839:1;27828:9;27824:17;27817:47;27881:131;28007:4;27881:131;:::i;:::-;27873:139;;27600:419;;;:::o;28025:191::-;28065:3;28084:20;28102:1;28084:20;:::i;:::-;28079:25;;28118:20;28136:1;28118:20;:::i;:::-;28113:25;;28161:1;28158;28154:9;28147:16;;28182:3;28179:1;28176:10;28173:36;;;28189:18;;:::i;:::-;28173:36;28025:191;;;;:::o;28222:222::-;28362:34;28358:1;28350:6;28346:14;28339:58;28431:5;28426:2;28418:6;28414:15;28407:30;28222:222;:::o;28450:366::-;28592:3;28613:67;28677:2;28672:3;28613:67;:::i;:::-;28606:74;;28689:93;28778:3;28689:93;:::i;:::-;28807:2;28802:3;28798:12;28791:19;;28450:366;;;:::o;28822:419::-;28988:4;29026:2;29015:9;29011:18;29003:26;;29075:9;29069:4;29065:20;29061:1;29050:9;29046:17;29039:47;29103:131;29229:4;29103:131;:::i;:::-;29095:139;;28822:419;;;:::o;29247:194::-;29287:4;29307:20;29325:1;29307:20;:::i;:::-;29302:25;;29341:20;29359:1;29341:20;:::i;:::-;29336:25;;29385:1;29382;29378:9;29370:17;;29409:1;29403:4;29400:11;29397:37;;;29414:18;;:::i;:::-;29397:37;29247:194;;;;:::o;29447:229::-;29587:34;29583:1;29575:6;29571:14;29564:58;29656:12;29651:2;29643:6;29639:15;29632:37;29447:229;:::o;29682:366::-;29824:3;29845:67;29909:2;29904:3;29845:67;:::i;:::-;29838:74;;29921:93;30010:3;29921:93;:::i;:::-;30039:2;30034:3;30030:12;30023:19;;29682:366;;;:::o;30054:419::-;30220:4;30258:2;30247:9;30243:18;30235:26;;30307:9;30301:4;30297:20;30293:1;30282:9;30278:17;30271:47;30335:131;30461:4;30335:131;:::i;:::-;30327:139;;30054:419;;;:::o;30479:180::-;30527:77;30524:1;30517:88;30624:4;30621:1;30614:15;30648:4;30645:1;30638:15;30665:143;30722:5;30753:6;30747:13;30738:22;;30769:33;30796:5;30769:33;:::i;:::-;30665:143;;;;:::o;30814:351::-;30884:6;30933:2;30921:9;30912:7;30908:23;30904:32;30901:119;;;30939:79;;:::i;:::-;30901:119;31059:1;31084:64;31140:7;31131:6;31120:9;31116:22;31084:64;:::i;:::-;31074:74;;31030:128;30814:351;;;;:::o;31171:85::-;31216:7;31245:5;31234:16;;31171:85;;;:::o;31262:158::-;31320:9;31353:61;31371:42;31380:32;31406:5;31380:32;:::i;:::-;31371:42;:::i;:::-;31353:61;:::i;:::-;31340:74;;31262:158;;;:::o;31426:147::-;31521:45;31560:5;31521:45;:::i;:::-;31516:3;31509:58;31426:147;;:::o;31579:114::-;31646:6;31680:5;31674:12;31664:22;;31579:114;;;:::o;31699:184::-;31798:11;31832:6;31827:3;31820:19;31872:4;31867:3;31863:14;31848:29;;31699:184;;;;:::o;31889:132::-;31956:4;31979:3;31971:11;;32009:4;32004:3;32000:14;31992:22;;31889:132;;;:::o;32027:108::-;32104:24;32122:5;32104:24;:::i;:::-;32099:3;32092:37;32027:108;;:::o;32141:179::-;32210:10;32231:46;32273:3;32265:6;32231:46;:::i;:::-;32309:4;32304:3;32300:14;32286:28;;32141:179;;;;:::o;32326:113::-;32396:4;32428;32423:3;32419:14;32411:22;;32326:113;;;:::o;32475:732::-;32594:3;32623:54;32671:5;32623:54;:::i;:::-;32693:86;32772:6;32767:3;32693:86;:::i;:::-;32686:93;;32803:56;32853:5;32803:56;:::i;:::-;32882:7;32913:1;32898:284;32923:6;32920:1;32917:13;32898:284;;;32999:6;32993:13;33026:63;33085:3;33070:13;33026:63;:::i;:::-;33019:70;;33112:60;33165:6;33112:60;:::i;:::-;33102:70;;32958:224;32945:1;32942;32938:9;32933:14;;32898:284;;;32902:14;33198:3;33191:10;;32599:608;;;32475:732;;;;:::o;33213:831::-;33476:4;33514:3;33503:9;33499:19;33491:27;;33528:71;33596:1;33585:9;33581:17;33572:6;33528:71;:::i;:::-;33609:80;33685:2;33674:9;33670:18;33661:6;33609:80;:::i;:::-;33736:9;33730:4;33726:20;33721:2;33710:9;33706:18;33699:48;33764:108;33867:4;33858:6;33764:108;:::i;:::-;33756:116;;33882:72;33950:2;33939:9;33935:18;33926:6;33882:72;:::i;:::-;33964:73;34032:3;34021:9;34017:19;34008:6;33964:73;:::i;:::-;33213:831;;;;;;;;:::o;34050:177::-;34190:29;34186:1;34178:6;34174:14;34167:53;34050:177;:::o;34233:366::-;34375:3;34396:67;34460:2;34455:3;34396:67;:::i;:::-;34389:74;;34472:93;34561:3;34472:93;:::i;:::-;34590:2;34585:3;34581:12;34574:19;;34233:366;;;:::o;34605:419::-;34771:4;34809:2;34798:9;34794:18;34786:26;;34858:9;34852:4;34848:20;34844:1;34833:9;34829:17;34822:47;34886:131;35012:4;34886:131;:::i;:::-;34878:139;;34605:419;;;:::o;35030:220::-;35170:34;35166:1;35158:6;35154:14;35147:58;35239:3;35234:2;35226:6;35222:15;35215:28;35030:220;:::o;35256:366::-;35398:3;35419:67;35483:2;35478:3;35419:67;:::i;:::-;35412:74;;35495:93;35584:3;35495:93;:::i;:::-;35613:2;35608:3;35604:12;35597:19;;35256:366;;;:::o;35628:419::-;35794:4;35832:2;35821:9;35817:18;35809:26;;35881:9;35875:4;35871:20;35867:1;35856:9;35852:17;35845:47;35909:131;36035:4;35909:131;:::i;:::-;35901:139;;35628:419;;;:::o
Swarm Source
ipfs://2d136d202ac26282face63800fbeef8a60dc0b94ef3486dfd85c6806c2e3d984
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.