Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
5,000,000 PLAY
Holders
439
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,262.885683365 PLAYValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Playscape
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-11-16 */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.18; 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 Playscape is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Playscape"; string private constant _symbol = "PLAY"; 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 = 5000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 5; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 5; //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(0x481eD21048d1aeee09f285970Daa1C77b27D0EDB); address payable private _marketingAddress = payable(0x481eD21048d1aeee09f285970Daa1C77b27D0EDB); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 50000 * 10**9; uint256 public _maxWalletSize = 50000 * 10**9; uint256 public _swapTokensAtAmount = 50 * 10**9; bool private _maxTxn = false; bool private _maxWallet = false; bool private _maxTxnCan = false; bool private _maxWalletCan = false; bool private _maxTxnPossible = false; bool private _maxWalletPossible = false; 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, "the transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount has to 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), "Cant approve from zero address"); require(spender != address(0), "Cant approve to zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "Can't transfer from address zero"); require(to != address(0), "Can't transfer to address zero"); require(amount > 0, "Amount has to be above zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "Only deployer can trade before trading activation"); } require(amount <= _maxTxAmount, "Exceeded max tx limit"); require(!bots[from] && !bots[to], "This account is on blacklist"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "Exceeds max balance"); } 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 blockBots(address[] memory bots_) public onlyOwner { for (uint256 i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function unblockBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _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 <= 4, "rewards must be between 0% and 4%"); require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 99, "tax must be between 0% and 99%"); require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "rewards must be between 0% and 4%"); require(taxFeeOnSell >= 0 && taxFeeOnSell <= 99, "tax must be between 0% and 99%"); _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, bool maxTxn, bool maxTxnCan, bool maxTxnPossible) public onlyOwner { _maxTxAmount = maxTxAmount; _maxTxn = maxTxn; _maxTxnCan = maxTxnCan; _maxTxnPossible = maxTxnPossible; } function setMaxWalletSize(uint256 maxWalletSize, bool maxWallet, bool maxWalletCan, bool maxWalletPossible) public onlyOwner { _maxWalletSize = maxWalletSize; _maxWallet = maxWallet; _maxWalletCan = maxWalletCan; _maxWalletPossible = maxWalletPossible; } 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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"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"},{"internalType":"bool","name":"maxTxn","type":"bool"},{"internalType":"bool","name":"maxTxnCan","type":"bool"},{"internalType":"bool","name":"maxTxnPossible","type":"bool"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"},{"internalType":"bool","name":"maxWallet","type":"bool"},{"internalType":"bool","name":"maxWalletCan","type":"bool"},{"internalType":"bool","name":"maxWalletPossible","type":"bool"}],"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":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526611c37937e080006000196200001b9190620007ab565b6000196200002a919062000812565b600655600060085560056009556000600a556005600b55600a54600c55600b54600d55600c54600e55600d54600f5573481ed21048d1aeee09f285970daa1c77b27d0edb601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073481ed21048d1aeee09f285970daa1c77b27d0edb601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550652d79883d2000601655652d79883d2000601755640ba43b74006018556000601960006101000a81548160ff0219169083151502179055506000601960016101000a81548160ff0219169083151502179055506000601960026101000a81548160ff0219169083151502179055506000601960036101000a81548160ff0219169083151502179055506000601960046101000a81548160ff0219169083151502179055506000601960056101000a81548160ff0219169083151502179055503480156200020457600080fd5b506000620002176200074160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460026000620002cc6200074160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d69190620008b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200043e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004649190620008b7565b6040518363ffffffff1660e01b815260040162000483929190620008fa565b6020604051808303816000875af1158015620004a3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c99190620008b7565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200051f6200074960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006cc6200074160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6611c37937e0800060405162000732919062000938565b60405180910390a35062000955565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007b88262000772565b9150620007c58362000772565b925082620007d857620007d76200077c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200081f8262000772565b91506200082c8362000772565b9250828203905081811115620008475762000846620007e3565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200087f8262000852565b9050919050565b620008918162000872565b81146200089d57600080fd5b50565b600081519050620008b18162000886565b92915050565b600060208284031215620008d057620008cf6200084d565b5b6000620008e084828501620008a0565b91505092915050565b620008f48162000872565b82525050565b6000604082019050620009116000830185620008e9565b620009206020830184620008e9565b9392505050565b620009328162000772565b82525050565b60006020820190506200094f600083018462000927565b92915050565b613fbb80620009656000396000f3fe6080604052600436106101d05760003560e01c8063715018a6116100f757806398a5c31511610095578063c3c8cd8011610064578063c3c8cd801461066e578063c492f04614610685578063dd62ed3e146106ae578063f2fde38b146106eb576101d7565b806398a5c315146105a2578063a2a957bb146105cb578063a9059cbb146105f4578063bfd7928414610631576101d7565b80638da5cb5b116100d15780638da5cb5b146104f85780638f70ccf7146105235780638f9a55c01461054c57806395d89b4114610577576101d7565b8063715018a6146104795780637d1db4a5146104905780637f2feddc146104bb576101d7565b8063313ce5671161016f5780636d15b9271161013e5780636d15b927146103d35780636d8aa8f8146103fc5780636fc3eaec1461042557806370a082311461043c576101d7565b8063313ce5671461032b57806349bd5a5e146103565780635cb0b0d5146103815780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612f33565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612ffb565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190613053565b61087b565b60405161026491906130ae565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f9190613128565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba9190613152565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e5919061316d565b6108ce565b6040516102f791906130ae565b60405180910390f35b34801561030c57600080fd5b506103156109a7565b6040516103229190613152565b60405180910390f35b34801561033757600080fd5b506103406109ad565b60405161034d91906131dc565b60405180910390f35b34801561036257600080fd5b5061036b6109b6565b6040516103789190613206565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a3919061324d565b6109dc565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906132b4565b610acc565b005b3480156103df57600080fd5b506103fa60048036038101906103f5919061324d565b610bbc565b005b34801561040857600080fd5b50610423600480360381019061041e91906132e1565b610cac565b005b34801561043157600080fd5b5061043a610d5e565b005b34801561044857600080fd5b50610463600480360381019061045e91906132b4565b610e2f565b6040516104709190613152565b60405180910390f35b34801561048557600080fd5b5061048e610e80565b005b34801561049c57600080fd5b506104a5610fd3565b6040516104b29190613152565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906132b4565b610fd9565b6040516104ef9190613152565b60405180910390f35b34801561050457600080fd5b5061050d610ff1565b60405161051a9190613206565b60405180910390f35b34801561052f57600080fd5b5061054a600480360381019061054591906132e1565b61101a565b005b34801561055857600080fd5b506105616110cc565b60405161056e9190613152565b60405180910390f35b34801561058357600080fd5b5061058c6110d2565b6040516105999190612ffb565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c4919061330e565b61110f565b005b3480156105d757600080fd5b506105f260048036038101906105ed919061333b565b6111ae565b005b34801561060057600080fd5b5061061b60048036038101906106169190613053565b6113a9565b60405161062891906130ae565b60405180910390f35b34801561063d57600080fd5b50610658600480360381019061065391906132b4565b6113c7565b60405161066591906130ae565b60405180910390f35b34801561067a57600080fd5b506106836113e7565b005b34801561069157600080fd5b506106ac60048036038101906106a791906133fd565b6114c0565b005b3480156106ba57600080fd5b506106d560048036038101906106d0919061345d565b6115fa565b6040516106e29190613152565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d91906132b4565b611681565b005b61071c611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906134e9565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd613509565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061083290613567565b9150506107ac565b5050565b60606040518060400160405280600981526020017f506c617973636170650000000000000000000000000000000000000000000000815250905090565b600061088f610888611842565b848461184a565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006611c37937e08000905090565b60006108db848484611a13565b61099c846108e7611842565b61099785604051806060016040528060258152602001613f6160259139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094d611842565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122969092919063ffffffff16565b61184a565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a68906134e9565b60405180910390fd5b8360178190555082601960016101000a81548160ff02191690831515021790555081601960036101000a81548160ff02191690831515021790555080601960056101000a81548160ff02191690831515021790555050505050565b610ad4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b58906134e9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bc4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c48906134e9565b60405180910390fd5b8360168190555082601960006101000a81548160ff02191690831515021790555081601960026101000a81548160ff02191690831515021790555080601960046101000a81548160ff02191690831515021790555050505050565b610cb4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d38906134e9565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9f611842565b73ffffffffffffffffffffffffffffffffffffffff161480610e155750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfd611842565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1e57600080fd5b6000479050610e2c816122fa565b50565b6000610e79600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612366565b9050919050565b610e88611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c906134e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611022611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a6906134e9565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f504c415900000000000000000000000000000000000000000000000000000000815250905090565b611117611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906134e9565b60405180910390fd5b8060188190555050565b6111b6611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a906134e9565b60405180910390fd5b60008410158015611255575060048411155b611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90613621565b60405180910390fd5b600082101580156112a6575060638211155b6112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc9061368d565b60405180910390fd5b600083101580156112f7575060048311155b611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132d90613621565b60405180910390fd5b60008110158015611348575060638111155b611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e9061368d565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006113bd6113b6611842565b8484611a13565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611428611842565b73ffffffffffffffffffffffffffffffffffffffff16148061149e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611486611842565b73ffffffffffffffffffffffffffffffffffffffff16145b6114a757600080fd5b60006114b230610e2f565b90506114bd816123d4565b50565b6114c8611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906134e9565b60405180910390fd5b60005b838390508110156115f457816005600086868581811061157b5761157a613509565b5b905060200201602081019061159091906132b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115ec90613567565b915050611558565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611689611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d906134e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c9061371f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b09061378b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f906137f7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a069190613152565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990613863565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906138cf565b60405180910390fd5b60008111611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b9061393b565b60405180910390fd5b611b3c610ff1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a610ff1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f9557601560149054906101000a900460ff16611c3957611bcb610ff1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f906139cd565b60405180910390fd5b5b601654811115611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590613a39565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d225750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613aa5565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e0e5760175481611dc384610e2f565b611dcd9190613ac5565b10611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0490613b45565b60405180910390fd5b5b6000611e1930610e2f565b9050600060185482101590506016548210611e345760165491505b808015611e4c575060158054906101000a900460ff16155b8015611ea65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ebe5750601560169054906101000a900460ff165b8015611f145750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f6a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f9257611f78826123d4565b60004790506000811115611f9057611f8f476122fa565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061203c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120ef5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120ee5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120fd5760009050612284565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121c057600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561226b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561228357600a54600c81905550600b54600d819055505b5b6122908484848461264b565b50505050565b60008383111582906122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59190612ffb565b60405180910390fd5b50600083856122ed9190613b65565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612362573d6000803e3d6000fd5b5050565b60006006548211156123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490613c0b565b60405180910390fd5b60006123b7612678565b90506123cc81846126a390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561240b5761240a612d92565b5b6040519080825280602002602001820160405280156124395781602001602082028036833780820191505090505b509050308160008151811061245157612450613509565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251c9190613c40565b816001815181106125305761252f613509565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061259730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461184a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125fb959493929190613d66565b600060405180830381600087803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612659576126586126ed565b5b61266484848461272a565b80612672576126716128f5565b5b50505050565b6000806000612685612909565b9150915061269c81836126a390919063ffffffff16565b9250505090565b60006126e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612965565b905092915050565b6000600c5414801561270157506000600d54145b61272857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061273c876129c8565b95509550955095509550955061279a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061282f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287b81612ad8565b6128858483612b95565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128e29190613152565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006611c37937e08000905061293b6611c37937e080006006546126a390919063ffffffff16565b821015612958576006546611c37937e08000935093505050612961565b81819350935050505b9091565b600080831182906129ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a39190612ffb565b60405180910390fd5b50600083856129bb9190613def565b9050809150509392505050565b60008060008060008060008060006129e58a600c54600d54612bcf565b92509250925060006129f5612678565b90506000806000612a088e878787612c65565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612296565b905092915050565b6000808284612a899190613ac5565b905083811015612ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac590613e6c565b60405180910390fd5b8091505092915050565b6000612ae2612678565b90506000612af98284612cee90919063ffffffff16565b9050612b4d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612baa82600654612a3090919063ffffffff16565b600681905550612bc581600754612a7a90919063ffffffff16565b6007819055505050565b600080600080612bfb6064612bed888a612cee90919063ffffffff16565b6126a390919063ffffffff16565b90506000612c256064612c17888b612cee90919063ffffffff16565b6126a390919063ffffffff16565b90506000612c4e82612c40858c612a3090919063ffffffff16565b612a3090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c7e8589612cee90919063ffffffff16565b90506000612c958689612cee90919063ffffffff16565b90506000612cac8789612cee90919063ffffffff16565b90506000612cd582612cc78587612a3090919063ffffffff16565b612a3090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612d005760009050612d62565b60008284612d0e9190613e8c565b9050828482612d1d9190613def565b14612d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5490613f40565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dca82612d81565b810181811067ffffffffffffffff82111715612de957612de8612d92565b5b80604052505050565b6000612dfc612d68565b9050612e088282612dc1565b919050565b600067ffffffffffffffff821115612e2857612e27612d92565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6982612e3e565b9050919050565b612e7981612e5e565b8114612e8457600080fd5b50565b600081359050612e9681612e70565b92915050565b6000612eaf612eaa84612e0d565b612df2565b90508083825260208201905060208402830185811115612ed257612ed1612e39565b5b835b81811015612efb5780612ee78882612e87565b845260208401935050602081019050612ed4565b5050509392505050565b600082601f830112612f1a57612f19612d7c565b5b8135612f2a848260208601612e9c565b91505092915050565b600060208284031215612f4957612f48612d72565b5b600082013567ffffffffffffffff811115612f6757612f66612d77565b5b612f7384828501612f05565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fb6578082015181840152602081019050612f9b565b60008484015250505050565b6000612fcd82612f7c565b612fd78185612f87565b9350612fe7818560208601612f98565b612ff081612d81565b840191505092915050565b600060208201905081810360008301526130158184612fc2565b905092915050565b6000819050919050565b6130308161301d565b811461303b57600080fd5b50565b60008135905061304d81613027565b92915050565b6000806040838503121561306a57613069612d72565b5b600061307885828601612e87565b92505060206130898582860161303e565b9150509250929050565b60008115159050919050565b6130a881613093565b82525050565b60006020820190506130c3600083018461309f565b92915050565b6000819050919050565b60006130ee6130e96130e484612e3e565b6130c9565b612e3e565b9050919050565b6000613100826130d3565b9050919050565b6000613112826130f5565b9050919050565b61312281613107565b82525050565b600060208201905061313d6000830184613119565b92915050565b61314c8161301d565b82525050565b60006020820190506131676000830184613143565b92915050565b60008060006060848603121561318657613185612d72565b5b600061319486828701612e87565b93505060206131a586828701612e87565b92505060406131b68682870161303e565b9150509250925092565b600060ff82169050919050565b6131d6816131c0565b82525050565b60006020820190506131f160008301846131cd565b92915050565b61320081612e5e565b82525050565b600060208201905061321b60008301846131f7565b92915050565b61322a81613093565b811461323557600080fd5b50565b60008135905061324781613221565b92915050565b6000806000806080858703121561326757613266612d72565b5b60006132758782880161303e565b945050602061328687828801613238565b935050604061329787828801613238565b92505060606132a887828801613238565b91505092959194509250565b6000602082840312156132ca576132c9612d72565b5b60006132d884828501612e87565b91505092915050565b6000602082840312156132f7576132f6612d72565b5b600061330584828501613238565b91505092915050565b60006020828403121561332457613323612d72565b5b60006133328482850161303e565b91505092915050565b6000806000806080858703121561335557613354612d72565b5b60006133638782880161303e565b94505060206133748782880161303e565b93505060406133858782880161303e565b92505060606133968782880161303e565b91505092959194509250565b600080fd5b60008083601f8401126133bd576133bc612d7c565b5b8235905067ffffffffffffffff8111156133da576133d96133a2565b5b6020830191508360208202830111156133f6576133f5612e39565b5b9250929050565b60008060006040848603121561341657613415612d72565b5b600084013567ffffffffffffffff81111561343457613433612d77565b5b613440868287016133a7565b9350935050602061345386828701613238565b9150509250925092565b6000806040838503121561347457613473612d72565b5b600061348285828601612e87565b925050602061349385828601612e87565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d3602083612f87565b91506134de8261349d565b602082019050919050565b60006020820190508181036000830152613502816134c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135728261301d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a4576135a3613538565b5b600182019050919050565b7f72657761726473206d757374206265206265747765656e20302520616e64203460008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b600061360b602183612f87565b9150613616826135af565b604082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b7f746178206d757374206265206265747765656e20302520616e64203939250000600082015250565b6000613677601e83612f87565b915061368282613641565b602082019050919050565b600060208201905081810360008301526136a68161366a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613709602683612f87565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f43616e7420617070726f76652066726f6d207a65726f20616464726573730000600082015250565b6000613775601e83612f87565b91506137808261373f565b602082019050919050565b600060208201905081810360008301526137a481613768565b9050919050565b7f43616e7420617070726f766520746f207a65726f206164647265737300000000600082015250565b60006137e1601c83612f87565b91506137ec826137ab565b602082019050919050565b60006020820190508181036000830152613810816137d4565b9050919050565b7f43616e2774207472616e736665722066726f6d2061646472657373207a65726f600082015250565b600061384d602083612f87565b915061385882613817565b602082019050919050565b6000602082019050818103600083015261387c81613840565b9050919050565b7f43616e2774207472616e7366657220746f2061646472657373207a65726f0000600082015250565b60006138b9601e83612f87565b91506138c482613883565b602082019050919050565b600060208201905081810360008301526138e8816138ac565b9050919050565b7f416d6f756e742068617320746f2062652061626f7665207a65726f0000000000600082015250565b6000613925601b83612f87565b9150613930826138ef565b602082019050919050565b6000602082019050818103600083015261395481613918565b9050919050565b7f4f6e6c79206465706c6f7965722063616e207472616465206265666f7265207460008201527f726164696e672061637469766174696f6e000000000000000000000000000000602082015250565b60006139b7603183612f87565b91506139c28261395b565b604082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f4578636565646564206d6178207478206c696d69740000000000000000000000600082015250565b6000613a23601583612f87565b9150613a2e826139ed565b602082019050919050565b60006020820190508181036000830152613a5281613a16565b9050919050565b7f54686973206163636f756e74206973206f6e20626c61636b6c69737400000000600082015250565b6000613a8f601c83612f87565b9150613a9a82613a59565b602082019050919050565b60006020820190508181036000830152613abe81613a82565b9050919050565b6000613ad08261301d565b9150613adb8361301d565b9250828201905080821115613af357613af2613538565b5b92915050565b7f45786365656473206d61782062616c616e636500000000000000000000000000600082015250565b6000613b2f601383612f87565b9150613b3a82613af9565b602082019050919050565b60006020820190508181036000830152613b5e81613b22565b9050919050565b6000613b708261301d565b9150613b7b8361301d565b9250828203905081811115613b9357613b92613538565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613bf5602c83612f87565b9150613c0082613b99565b604082019050919050565b60006020820190508181036000830152613c2481613be8565b9050919050565b600081519050613c3a81612e70565b92915050565b600060208284031215613c5657613c55612d72565b5b6000613c6484828501613c2b565b91505092915050565b6000819050919050565b6000613c92613c8d613c8884613c6d565b6130c9565b61301d565b9050919050565b613ca281613c77565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cdd81612e5e565b82525050565b6000613cef8383613cd4565b60208301905092915050565b6000602082019050919050565b6000613d1382613ca8565b613d1d8185613cb3565b9350613d2883613cc4565b8060005b83811015613d59578151613d408882613ce3565b9750613d4b83613cfb565b925050600181019050613d2c565b5085935050505092915050565b600060a082019050613d7b6000830188613143565b613d886020830187613c99565b8181036040830152613d9a8186613d08565b9050613da960608301856131f7565b613db66080830184613143565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613dfa8261301d565b9150613e058361301d565b925082613e1557613e14613dc0565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e56601b83612f87565b9150613e6182613e20565b602082019050919050565b60006020820190508181036000830152613e8581613e49565b9050919050565b6000613e978261301d565b9150613ea28361301d565b9250828202613eb08161301d565b91508282048414831517613ec757613ec6613538565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f2a602183612f87565b9150613f3582613ece565b604082019050919050565b60006020820190508181036000830152613f5981613f1d565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b4930679473f6c18be3f3fe87ed2d4fa88b14048e3ebdae492f5f2b4ab6223d464736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101d05760003560e01c8063715018a6116100f757806398a5c31511610095578063c3c8cd8011610064578063c3c8cd801461066e578063c492f04614610685578063dd62ed3e146106ae578063f2fde38b146106eb576101d7565b806398a5c315146105a2578063a2a957bb146105cb578063a9059cbb146105f4578063bfd7928414610631576101d7565b80638da5cb5b116100d15780638da5cb5b146104f85780638f70ccf7146105235780638f9a55c01461054c57806395d89b4114610577576101d7565b8063715018a6146104795780637d1db4a5146104905780637f2feddc146104bb576101d7565b8063313ce5671161016f5780636d15b9271161013e5780636d15b927146103d35780636d8aa8f8146103fc5780636fc3eaec1461042557806370a082311461043c576101d7565b8063313ce5671461032b57806349bd5a5e146103565780635cb0b0d5146103815780636b999053146103aa576101d7565b80631694505e116101ab5780631694505e1461026d57806318160ddd1461029857806323b872dd146102c35780632fd689e314610300576101d7565b8062b8cf2a146101dc57806306fdde0314610205578063095ea7b314610230576101d7565b366101d757005b600080fd5b3480156101e857600080fd5b5061020360048036038101906101fe9190612f33565b610714565b005b34801561021157600080fd5b5061021a61083e565b6040516102279190612ffb565b60405180910390f35b34801561023c57600080fd5b5061025760048036038101906102529190613053565b61087b565b60405161026491906130ae565b60405180910390f35b34801561027957600080fd5b50610282610899565b60405161028f9190613128565b60405180910390f35b3480156102a457600080fd5b506102ad6108bf565b6040516102ba9190613152565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e5919061316d565b6108ce565b6040516102f791906130ae565b60405180910390f35b34801561030c57600080fd5b506103156109a7565b6040516103229190613152565b60405180910390f35b34801561033757600080fd5b506103406109ad565b60405161034d91906131dc565b60405180910390f35b34801561036257600080fd5b5061036b6109b6565b6040516103789190613206565b60405180910390f35b34801561038d57600080fd5b506103a860048036038101906103a3919061324d565b6109dc565b005b3480156103b657600080fd5b506103d160048036038101906103cc91906132b4565b610acc565b005b3480156103df57600080fd5b506103fa60048036038101906103f5919061324d565b610bbc565b005b34801561040857600080fd5b50610423600480360381019061041e91906132e1565b610cac565b005b34801561043157600080fd5b5061043a610d5e565b005b34801561044857600080fd5b50610463600480360381019061045e91906132b4565b610e2f565b6040516104709190613152565b60405180910390f35b34801561048557600080fd5b5061048e610e80565b005b34801561049c57600080fd5b506104a5610fd3565b6040516104b29190613152565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd91906132b4565b610fd9565b6040516104ef9190613152565b60405180910390f35b34801561050457600080fd5b5061050d610ff1565b60405161051a9190613206565b60405180910390f35b34801561052f57600080fd5b5061054a600480360381019061054591906132e1565b61101a565b005b34801561055857600080fd5b506105616110cc565b60405161056e9190613152565b60405180910390f35b34801561058357600080fd5b5061058c6110d2565b6040516105999190612ffb565b60405180910390f35b3480156105ae57600080fd5b506105c960048036038101906105c4919061330e565b61110f565b005b3480156105d757600080fd5b506105f260048036038101906105ed919061333b565b6111ae565b005b34801561060057600080fd5b5061061b60048036038101906106169190613053565b6113a9565b60405161062891906130ae565b60405180910390f35b34801561063d57600080fd5b50610658600480360381019061065391906132b4565b6113c7565b60405161066591906130ae565b60405180910390f35b34801561067a57600080fd5b506106836113e7565b005b34801561069157600080fd5b506106ac60048036038101906106a791906133fd565b6114c0565b005b3480156106ba57600080fd5b506106d560048036038101906106d0919061345d565b6115fa565b6040516106e29190613152565b60405180910390f35b3480156106f757600080fd5b50610712600480360381019061070d91906132b4565b611681565b005b61071c611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a0906134e9565b60405180910390fd5b60005b815181101561083a576001601060008484815181106107ce576107cd613509565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061083290613567565b9150506107ac565b5050565b60606040518060400160405280600981526020017f506c617973636170650000000000000000000000000000000000000000000000815250905090565b600061088f610888611842565b848461184a565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006611c37937e08000905090565b60006108db848484611a13565b61099c846108e7611842565b61099785604051806060016040528060258152602001613f6160259139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061094d611842565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122969092919063ffffffff16565b61184a565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109e4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a68906134e9565b60405180910390fd5b8360178190555082601960016101000a81548160ff02191690831515021790555081601960036101000a81548160ff02191690831515021790555080601960056101000a81548160ff02191690831515021790555050505050565b610ad4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b58906134e9565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610bc4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c48906134e9565b60405180910390fd5b8360168190555082601960006101000a81548160ff02191690831515021790555081601960026101000a81548160ff02191690831515021790555080601960046101000a81548160ff02191690831515021790555050505050565b610cb4611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d38906134e9565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9f611842565b73ffffffffffffffffffffffffffffffffffffffff161480610e155750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dfd611842565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1e57600080fd5b6000479050610e2c816122fa565b50565b6000610e79600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612366565b9050919050565b610e88611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0c906134e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611022611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a6906134e9565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600481526020017f504c415900000000000000000000000000000000000000000000000000000000815250905090565b611117611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b906134e9565b60405180910390fd5b8060188190555050565b6111b6611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611243576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123a906134e9565b60405180910390fd5b60008410158015611255575060048411155b611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b90613621565b60405180910390fd5b600082101580156112a6575060638211155b6112e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112dc9061368d565b60405180910390fd5b600083101580156112f7575060048311155b611336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132d90613621565b60405180910390fd5b60008110158015611348575060638111155b611387576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137e9061368d565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b60006113bd6113b6611842565b8484611a13565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611428611842565b73ffffffffffffffffffffffffffffffffffffffff16148061149e5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611486611842565b73ffffffffffffffffffffffffffffffffffffffff16145b6114a757600080fd5b60006114b230610e2f565b90506114bd816123d4565b50565b6114c8611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611555576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154c906134e9565b60405180910390fd5b60005b838390508110156115f457816005600086868581811061157b5761157a613509565b5b905060200201602081019061159091906132b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806115ec90613567565b915050611558565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611689611842565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d906134e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c9061371f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b09061378b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f906137f7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a069190613152565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7990613863565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae8906138cf565b60405180910390fd5b60008111611b34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2b9061393b565b60405180910390fd5b611b3c610ff1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611baa5750611b7a610ff1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f9557601560149054906101000a900460ff16611c3957611bcb610ff1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f906139cd565b60405180910390fd5b5b601654811115611c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7590613a39565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d225750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5890613aa5565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e0e5760175481611dc384610e2f565b611dcd9190613ac5565b10611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0490613b45565b60405180910390fd5b5b6000611e1930610e2f565b9050600060185482101590506016548210611e345760165491505b808015611e4c575060158054906101000a900460ff16155b8015611ea65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ebe5750601560169054906101000a900460ff165b8015611f145750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f6a5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f9257611f78826123d4565b60004790506000811115611f9057611f8f476122fa565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061203c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120ef5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120ee5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120fd5760009050612284565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a85750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121c057600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561226b5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561228357600a54600c81905550600b54600d819055505b5b6122908484848461264b565b50505050565b60008383111582906122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d59190612ffb565b60405180910390fd5b50600083856122ed9190613b65565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612362573d6000803e3d6000fd5b5050565b60006006548211156123ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a490613c0b565b60405180910390fd5b60006123b7612678565b90506123cc81846126a390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561240b5761240a612d92565b5b6040519080825280602002602001820160405280156124395781602001602082028036833780820191505090505b509050308160008151811061245157612450613509565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061251c9190613c40565b816001815181106125305761252f613509565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061259730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461184a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125fb959493929190613d66565b600060405180830381600087803b15801561261557600080fd5b505af1158015612629573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612659576126586126ed565b5b61266484848461272a565b80612672576126716128f5565b5b50505050565b6000806000612685612909565b9150915061269c81836126a390919063ffffffff16565b9250505090565b60006126e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612965565b905092915050565b6000600c5414801561270157506000600d54145b61272857600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061273c876129c8565b95509550955095509550955061279a86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a3090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061282f85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061287b81612ad8565b6128858483612b95565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128e29190613152565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006611c37937e08000905061293b6611c37937e080006006546126a390919063ffffffff16565b821015612958576006546611c37937e08000935093505050612961565b81819350935050505b9091565b600080831182906129ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129a39190612ffb565b60405180910390fd5b50600083856129bb9190613def565b9050809150509392505050565b60008060008060008060008060006129e58a600c54600d54612bcf565b92509250925060006129f5612678565b90506000806000612a088e878787612c65565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612a7283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612296565b905092915050565b6000808284612a899190613ac5565b905083811015612ace576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ac590613e6c565b60405180910390fd5b8091505092915050565b6000612ae2612678565b90506000612af98284612cee90919063ffffffff16565b9050612b4d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a7a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612baa82600654612a3090919063ffffffff16565b600681905550612bc581600754612a7a90919063ffffffff16565b6007819055505050565b600080600080612bfb6064612bed888a612cee90919063ffffffff16565b6126a390919063ffffffff16565b90506000612c256064612c17888b612cee90919063ffffffff16565b6126a390919063ffffffff16565b90506000612c4e82612c40858c612a3090919063ffffffff16565b612a3090919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612c7e8589612cee90919063ffffffff16565b90506000612c958689612cee90919063ffffffff16565b90506000612cac8789612cee90919063ffffffff16565b90506000612cd582612cc78587612a3090919063ffffffff16565b612a3090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612d005760009050612d62565b60008284612d0e9190613e8c565b9050828482612d1d9190613def565b14612d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d5490613f40565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612dca82612d81565b810181811067ffffffffffffffff82111715612de957612de8612d92565b5b80604052505050565b6000612dfc612d68565b9050612e088282612dc1565b919050565b600067ffffffffffffffff821115612e2857612e27612d92565b5b602082029050602081019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e6982612e3e565b9050919050565b612e7981612e5e565b8114612e8457600080fd5b50565b600081359050612e9681612e70565b92915050565b6000612eaf612eaa84612e0d565b612df2565b90508083825260208201905060208402830185811115612ed257612ed1612e39565b5b835b81811015612efb5780612ee78882612e87565b845260208401935050602081019050612ed4565b5050509392505050565b600082601f830112612f1a57612f19612d7c565b5b8135612f2a848260208601612e9c565b91505092915050565b600060208284031215612f4957612f48612d72565b5b600082013567ffffffffffffffff811115612f6757612f66612d77565b5b612f7384828501612f05565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fb6578082015181840152602081019050612f9b565b60008484015250505050565b6000612fcd82612f7c565b612fd78185612f87565b9350612fe7818560208601612f98565b612ff081612d81565b840191505092915050565b600060208201905081810360008301526130158184612fc2565b905092915050565b6000819050919050565b6130308161301d565b811461303b57600080fd5b50565b60008135905061304d81613027565b92915050565b6000806040838503121561306a57613069612d72565b5b600061307885828601612e87565b92505060206130898582860161303e565b9150509250929050565b60008115159050919050565b6130a881613093565b82525050565b60006020820190506130c3600083018461309f565b92915050565b6000819050919050565b60006130ee6130e96130e484612e3e565b6130c9565b612e3e565b9050919050565b6000613100826130d3565b9050919050565b6000613112826130f5565b9050919050565b61312281613107565b82525050565b600060208201905061313d6000830184613119565b92915050565b61314c8161301d565b82525050565b60006020820190506131676000830184613143565b92915050565b60008060006060848603121561318657613185612d72565b5b600061319486828701612e87565b93505060206131a586828701612e87565b92505060406131b68682870161303e565b9150509250925092565b600060ff82169050919050565b6131d6816131c0565b82525050565b60006020820190506131f160008301846131cd565b92915050565b61320081612e5e565b82525050565b600060208201905061321b60008301846131f7565b92915050565b61322a81613093565b811461323557600080fd5b50565b60008135905061324781613221565b92915050565b6000806000806080858703121561326757613266612d72565b5b60006132758782880161303e565b945050602061328687828801613238565b935050604061329787828801613238565b92505060606132a887828801613238565b91505092959194509250565b6000602082840312156132ca576132c9612d72565b5b60006132d884828501612e87565b91505092915050565b6000602082840312156132f7576132f6612d72565b5b600061330584828501613238565b91505092915050565b60006020828403121561332457613323612d72565b5b60006133328482850161303e565b91505092915050565b6000806000806080858703121561335557613354612d72565b5b60006133638782880161303e565b94505060206133748782880161303e565b93505060406133858782880161303e565b92505060606133968782880161303e565b91505092959194509250565b600080fd5b60008083601f8401126133bd576133bc612d7c565b5b8235905067ffffffffffffffff8111156133da576133d96133a2565b5b6020830191508360208202830111156133f6576133f5612e39565b5b9250929050565b60008060006040848603121561341657613415612d72565b5b600084013567ffffffffffffffff81111561343457613433612d77565b5b613440868287016133a7565b9350935050602061345386828701613238565b9150509250925092565b6000806040838503121561347457613473612d72565b5b600061348285828601612e87565b925050602061349385828601612e87565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d3602083612f87565b91506134de8261349d565b602082019050919050565b60006020820190508181036000830152613502816134c6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006135728261301d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036135a4576135a3613538565b5b600182019050919050565b7f72657761726473206d757374206265206265747765656e20302520616e64203460008201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b600061360b602183612f87565b9150613616826135af565b604082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b7f746178206d757374206265206265747765656e20302520616e64203939250000600082015250565b6000613677601e83612f87565b915061368282613641565b602082019050919050565b600060208201905081810360008301526136a68161366a565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613709602683612f87565b9150613714826136ad565b604082019050919050565b60006020820190508181036000830152613738816136fc565b9050919050565b7f43616e7420617070726f76652066726f6d207a65726f20616464726573730000600082015250565b6000613775601e83612f87565b91506137808261373f565b602082019050919050565b600060208201905081810360008301526137a481613768565b9050919050565b7f43616e7420617070726f766520746f207a65726f206164647265737300000000600082015250565b60006137e1601c83612f87565b91506137ec826137ab565b602082019050919050565b60006020820190508181036000830152613810816137d4565b9050919050565b7f43616e2774207472616e736665722066726f6d2061646472657373207a65726f600082015250565b600061384d602083612f87565b915061385882613817565b602082019050919050565b6000602082019050818103600083015261387c81613840565b9050919050565b7f43616e2774207472616e7366657220746f2061646472657373207a65726f0000600082015250565b60006138b9601e83612f87565b91506138c482613883565b602082019050919050565b600060208201905081810360008301526138e8816138ac565b9050919050565b7f416d6f756e742068617320746f2062652061626f7665207a65726f0000000000600082015250565b6000613925601b83612f87565b9150613930826138ef565b602082019050919050565b6000602082019050818103600083015261395481613918565b9050919050565b7f4f6e6c79206465706c6f7965722063616e207472616465206265666f7265207460008201527f726164696e672061637469766174696f6e000000000000000000000000000000602082015250565b60006139b7603183612f87565b91506139c28261395b565b604082019050919050565b600060208201905081810360008301526139e6816139aa565b9050919050565b7f4578636565646564206d6178207478206c696d69740000000000000000000000600082015250565b6000613a23601583612f87565b9150613a2e826139ed565b602082019050919050565b60006020820190508181036000830152613a5281613a16565b9050919050565b7f54686973206163636f756e74206973206f6e20626c61636b6c69737400000000600082015250565b6000613a8f601c83612f87565b9150613a9a82613a59565b602082019050919050565b60006020820190508181036000830152613abe81613a82565b9050919050565b6000613ad08261301d565b9150613adb8361301d565b9250828201905080821115613af357613af2613538565b5b92915050565b7f45786365656473206d61782062616c616e636500000000000000000000000000600082015250565b6000613b2f601383612f87565b9150613b3a82613af9565b602082019050919050565b60006020820190508181036000830152613b5e81613b22565b9050919050565b6000613b708261301d565b9150613b7b8361301d565b9250828203905081811115613b9357613b92613538565b5b92915050565b7f416d6f756e742068617320746f206265206c657373207468616e20746f74616c60008201527f207265666c656374696f6e730000000000000000000000000000000000000000602082015250565b6000613bf5602c83612f87565b9150613c0082613b99565b604082019050919050565b60006020820190508181036000830152613c2481613be8565b9050919050565b600081519050613c3a81612e70565b92915050565b600060208284031215613c5657613c55612d72565b5b6000613c6484828501613c2b565b91505092915050565b6000819050919050565b6000613c92613c8d613c8884613c6d565b6130c9565b61301d565b9050919050565b613ca281613c77565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613cdd81612e5e565b82525050565b6000613cef8383613cd4565b60208301905092915050565b6000602082019050919050565b6000613d1382613ca8565b613d1d8185613cb3565b9350613d2883613cc4565b8060005b83811015613d59578151613d408882613ce3565b9750613d4b83613cfb565b925050600181019050613d2c565b5085935050505092915050565b600060a082019050613d7b6000830188613143565b613d886020830187613c99565b8181036040830152613d9a8186613d08565b9050613da960608301856131f7565b613db66080830184613143565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613dfa8261301d565b9150613e058361301d565b925082613e1557613e14613dc0565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613e56601b83612f87565b9150613e6182613e20565b602082019050919050565b60006020820190508181036000830152613e8581613e49565b9050919050565b6000613e978261301d565b9150613ea28361301d565b9250828202613eb08161301d565b91508282048414831517613ec757613ec6613538565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f2a602183612f87565b9150613f3582613ece565b604082019050919050565b60006020820190508181036000830152613f5981613f1d565b905091905056fe746865207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b4930679473f6c18be3f3fe87ed2d4fa88b14048e3ebdae492f5f2b4ab6223d464736f6c63430008120033
Deployed Bytecode Sourcemap
4096:14457:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12970:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6843:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7775:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5451:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7123:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7977:443;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5747:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7031:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5499:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18010:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13148:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17718:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17577:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12726:235;;;;;;;;;;;;;:::i;:::-;;7227:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1569:148;;;;;;;;;;;;;:::i;:::-;;5643:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1353:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12371:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5694:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6935:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17385:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16657:675;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7374:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5152:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12481:236;;;;;;;;;;;;;:::i;:::-;;18314:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7582:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1726:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12970:169;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13046:9:::1;13041:91;13065:5;:12;13061:1;:16;13041:91;;;13116:4;13099;:14;13104:5;13110:1;13104:8;;;;;;;;:::i;:::-;;;;;;;;13099:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13079:3;;;;;:::i;:::-;;;;13041:91;;;;12970:169:::0;:::o;6843:83::-;6880:13;6913:5;;;;;;;;;;;;;;;;;6906:12;;6843:83;:::o;7775:193::-;7877:4;7899:39;7908:12;:10;:12::i;:::-;7922:7;7931:6;7899:8;:39::i;:::-;7956:4;7949:11;;7775:193;;;;:::o;5451:41::-;;;;;;;;;;;;;:::o;7123:95::-;7176:7;4648:15;7196:14;;7123:95;:::o;7977:443::-;8109:4;8126:36;8136:6;8144:9;8155:6;8126:9;:36::i;:::-;8173:217;8196:6;8217:12;:10;:12::i;:::-;8244:135;8300:6;8244:135;;;;;;;;;;;;;;;;;:11;:19;8256:6;8244:19;;;;;;;;;;;;;;;:33;8264:12;:10;:12::i;:::-;8244:33;;;;;;;;;;;;;;;;:37;;:135;;;;;:::i;:::-;8173:8;:217::i;:::-;8408:4;8401:11;;7977:443;;;;;:::o;5747:47::-;;;;:::o;7031:83::-;7072:5;4321:1;7090:16;;7031:83;:::o;5499:28::-;;;;;;;;;;;;;:::o;18010:295::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18163:13:::1;18146:14;:30;;;;18200:9;18187:10;;:22;;;;;;;;;;;;;;;;;;18236:12;18220:13;;:28;;;;;;;;;;;;;;;;;;18280:17;18259:18;;:38;;;;;;;;;;;;;;;;;;18010:295:::0;;;;:::o;13148:92::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13227:5:::1;13212:4;:12;13217:6;13212:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13148:92:::0;:::o;17718:283::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17860:11:::1;17845:12;:26;;;;17895:6;17885:7;;:16;;;;;;;;;;;;;;;;;;17928:9;17915:10;;:22;;;;;;;;;;;;;;;;;;17969:14;17951:15;;:32;;;;;;;;;;;;;;;;;;17718:283:::0;;;;:::o;17577:101::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17658:12:::1;17644:11;;:26;;;;;;;;;;;;;;;;;;17577:101:::0;:::o;12726:235::-;12792:19;;;;;;;;;;;12776:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12831:17;;;;;;;;;;;12815:33;;:12;:10;:12::i;:::-;:33;;;12776:72;12768:81;;;;;;12860:26;12889:21;12860:50;;12921:32;12934:18;12921:12;:32::i;:::-;12757:204;12726:235::o;7227:138::-;7293:7;7320:37;7340:7;:16;7348:7;7340:16;;;;;;;;;;;;;;;;7320:19;:37::i;:::-;7313:44;;7227:138;;;:::o;1569:148::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1676:1:::1;1639:40;;1660:6;::::0;::::1;;;;;;;;1639:40;;;;;;;;;;;;1707:1;1690:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1569:148::o:0;5643:43::-;;;;:::o;5190:::-;;;;;;;;;;;;;;;;;:::o;1353:79::-;1391:7;1418:6;;;;;;;;;;;1411:13;;1353:79;:::o;12371:101::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12452:12:::1;12438:11;;:26;;;;;;;;;;;;;;;;;;12371:101:::0;:::o;5694:45::-;;;;:::o;6935:87::-;6974:13;7007:7;;;;;;;;;;;;;;;;;7000:14;;6935:87;:::o;17385:139::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17498:18:::1;17476:19;:40;;;;17385:139:::0;:::o;16657:675::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16816:1:::1;16799:13;:18;;:40;;;;;16838:1;16821:13;:18;;16799:40;16791:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;16911:1;16896:11;:16;;:37;;;;;16931:2;16916:11;:17;;16896:37;16888:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;17005:1;16987:14;:19;;:42;;;;;17028:1;17010:14;:19;;16987:42;16979:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17102:1;17086:12;:17;;:39;;;;;17123:2;17107:12;:18;;17086:39;17078:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;17190:13;17173:14;:30;;;;17232:14;17214:15;:32;;;;17272:11;17257:12;:26;;;;17310:12;17294:13;:28;;;;16657:675:::0;;;;:::o;7374:199::-;7479:4;7501:42;7511:12;:10;:12::i;:::-;7525:9;7536:6;7501:9;:42::i;:::-;7561:4;7554:11;;7374:199;;;;:::o;5152:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12481:236::-;12547:19;;;;;;;;;;;12531:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12586:17;;;;;;;;;;;12570:33;;:12;:10;:12::i;:::-;:33;;;12531:72;12523:81;;;;;;12615:23;12641:24;12659:4;12641:9;:24::i;:::-;12615:50;;12676:33;12693:15;12676:16;:33::i;:::-;12512:205;12481:236::o;18314:234::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18431:9:::1;18427:114;18450:8;;:15;;18446:1;:19;18427:114;;;18521:8;18487:18;:31;18506:8;;18515:1;18506:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18487:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18467:3;;;;;:::i;:::-;;;;18427:114;;;;18314:234:::0;;;:::o;7582:184::-;7699:7;7731:11;:18;7743:5;7731:18;;;;;;;;;;;;;;;:27;7750:7;7731:27;;;;;;;;;;;;;;;;7724:34;;7582:184;;;;:::o;1726:244::-;1491:12;:10;:12::i;:::-;1481:22;;:6;;;;;;;;;;:22;;;1473:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1835:1:::1;1815:22;;:8;:22;;::::0;1807:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1925:8;1896:38;;1917:6;::::0;::::1;;;;;;;;1896:38;;;;;;;;;;;;1954:8;1945:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1726:244:::0;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;9119:359::-;9263:1;9246:19;;:5;:19;;;9238:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9338:1;9319:21;;:7;:21;;;9311:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9416:6;9386:11;:18;9398:5;9386:18;;;;;;;;;;;;;;;:27;9405:7;9386:27;;;;;;;;;;;;;;;:36;;;;9454:7;9438:32;;9447:5;9438:32;;;9463:6;9438:32;;;;;;:::i;:::-;;;;;;;;9119:359;;;:::o;9487:2275::-;9625:1;9609:18;;:4;:18;;;9601:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9697:1;9683:16;;:2;:16;;;9675:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;9762:1;9753:6;:10;9745:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;9821:7;:5;:7::i;:::-;9813:15;;:4;:15;;;;:32;;;;;9838:7;:5;:7::i;:::-;9832:13;;:2;:13;;;;9813:32;9809:1221;;;9903:11;;;;;;;;;;;9898:130;;9951:7;:5;:7::i;:::-;9943:15;;:4;:15;;;9935:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9898:130;10063:12;;10053:6;:22;;10045:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10125:4;:10;10130:4;10125:10;;;;;;;;;;;;;;;;;;;;;;;;;10124:11;:24;;;;;10140:4;:8;10145:2;10140:8;;;;;;;;;;;;;;;;;;;;;;;;;10139:9;10124:24;10116:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10208:13;;;;;;;;;;;10202:19;;:2;:19;;;10199:130;;10275:14;;10266:6;10250:13;10260:2;10250:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10242:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10199:130;10346:28;10377:24;10395:4;10377:9;:24::i;:::-;10346:55;;10416:12;10455:19;;10431:20;:43;;10416:58;;10519:12;;10495:20;:36;10492:124;;10588:12;;10565:35;;10492:124;10637:7;:18;;;;;10649:6;;;;;;;;;;10648:7;10637:18;:43;;;;;10667:13;;;;;;;;;;;10659:21;;:4;:21;;;;10637:43;:58;;;;;10684:11;;;;;;;;;;;10637:58;:87;;;;;10700:18;:24;10719:4;10700:24;;;;;;;;;;;;;;;;;;;;;;;;;10699:25;10637:87;:114;;;;;10729:18;:22;10748:2;10729:22;;;;;;;;;;;;;;;;;;;;;;;;;10728:23;10637:114;10633:386;;;10772:38;10789:20;10772:16;:38::i;:::-;10829:26;10858:21;10829:50;;10923:1;10902:18;:22;10898:106;;;10949:35;10962:21;10949:12;:35::i;:::-;10898:106;10753:266;10633:386;9847:1183;;9809:1221;11043:12;11058:4;11043:19;;11108:18;:24;11127:4;11108:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11136:18;:22;11155:2;11136:22;;;;;;;;;;;;;;;;;;;;;;;;;11108:50;11107:102;;;;11172:13;;;;;;;;;;;11164:21;;:4;:21;;;;:44;;;;;11195:13;;;;;;;;;;;11189:19;;:2;:19;;;;11164:44;11107:102;11103:597;;;11236:5;11226:15;;11103:597;;;11320:13;;;;;;;;;;;11312:21;;:4;:21;;;:55;;;;;11351:15;;;;;;;;;;;11337:30;;:2;:30;;;;11312:55;11309:162;;;11400:14;;11388:9;:26;;;;11443:12;;11433:7;:22;;;;11309:162;11531:13;;;;;;;;;;;11525:19;;:2;:19;;;:55;;;;;11564:15;;;;;;;;;;;11548:32;;:4;:32;;;;11525:55;11521:165;;;11613:15;;11601:9;:27;;;;11657:13;;11647:7;:23;;;;11521:165;11103:597;11713:41;11728:4;11734:2;11738:6;11746:7;11713:14;:41::i;:::-;9590:2172;9487:2275;;;:::o;2338:224::-;2458:7;2491:1;2486;:6;;2494:12;2478:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2518:9;2534:1;2530;:5;;;;:::i;:::-;2518:17;;2553:1;2546:8;;;2338:224;;;;;:::o;12263:99::-;12320:17;;;;;;;;;;;:26;;:34;12347:6;12320:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12263:99;:::o;8429:325::-;8524:7;8582;;8571;:18;;8549:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;8672:19;8694:10;:8;:10::i;:::-;8672:32;;8722:24;8734:11;8722:7;:11;;:24;;;;:::i;:::-;8715:31;;;8429:325;;;:::o;11771:483::-;6140:4;6131:6;;:13;;;;;;;;;;;;;;;;;;11849:21:::1;11887:1;11873:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11849:40;;11918:4;11900;11905:1;11900:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11944:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11934:4;11939:1;11934:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11977:62;11994:4;12009:15;;;;;;;;;;;12027:11;11977:8;:62::i;:::-;12050:15;;;;;;;;;;;:66;;;12131:11;12157:1;12173:4;12200;12220:15;12050:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11838:416;6176:5:::0;6167:6;;:14;;;;;;;;;;;;;;;;;;11771:483;:::o;13249:282::-;13405:7;13400:28;;13414:14;:12;:14::i;:::-;13400:28;13439:44;13457:6;13465:9;13476:6;13439:17;:44::i;:::-;13499:7;13494:29;;13508:15;:13;:15::i;:::-;13494:29;13249:282;;;;:::o;16218:164::-;16260:7;16281:15;16298;16317:19;:17;:19::i;:::-;16280:56;;;;16354:20;16366:7;16354;:11;;:20;;;;:::i;:::-;16347:27;;;;16218:164;:::o;2826:132::-;2884:7;2911:39;2915:1;2918;2911:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2904:46;;2826:132;;;;:::o;8763:221::-;8823:1;8810:9;;:14;:30;;;;;8839:1;8828:7;;:12;8810:30;8842:7;8806:43;8882:9;;8862:17;:29;;;;8920:7;;8902:15;:25;;;;8953:1;8941:9;:13;;;;8975:1;8965:7;:11;;;;8763:221;:::o;13540:610::-;13687:15;13717:23;13755:12;13782:23;13820:12;13847:13;13874:19;13885:7;13874:10;:19::i;:::-;13672:221;;;;;;;;;;;;13922:28;13942:7;13922;:15;13930:6;13922:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13904:7;:15;13912:6;13904:15;;;;;;;;;;;;;;;:46;;;;13982:39;14005:15;13982:7;:18;13990:9;13982:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13961:7;:18;13969:9;13961:18;;;;;;;;;;;;;;;:60;;;;14032:16;14042:5;14032:9;:16::i;:::-;14059:23;14071:4;14077;14059:11;:23::i;:::-;14115:9;14098:44;;14107:6;14098:44;;;14126:15;14098:44;;;;;;:::i;:::-;;;;;;;;13661:489;;;;;;13540:610;;;:::o;8993:117::-;9049:17;;9037:9;:29;;;;9087:15;;9077:7;:25;;;;8993:117::o;16391:257::-;16442:7;16451;16471:15;16489:7;;16471:25;;16507:15;4648;16507:25;;16557:20;4648:15;16557:7;;:11;;:20;;;;:::i;:::-;16547:7;:30;16543:61;;;16587:7;;4648:15;16579:25;;;;;;;;16543:61;16623:7;16632;16615:25;;;;;;16391:257;;;:::o;2967:223::-;3087:7;3119:1;3115;:5;3122:12;3107:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3146:9;3162:1;3158;:5;;;;:::i;:::-;3146:17;;3181:1;3174:8;;;2967:223;;;;;:::o;14573:615::-;14673:7;14695;14717;14739;14761;14783;14819:23;14844:12;14858:13;14888:40;14900:7;14909:9;;14920:7;;14888:11;:40::i;:::-;14818:110;;;;;;14939:19;14961:10;:8;:10::i;:::-;14939:32;;14983:15;15000:23;15025:12;15054:46;15066:7;15075:4;15081:5;15088:11;15054;:46::i;:::-;14982:118;;;;;;15119:7;15128:15;15145:4;15151:15;15168:4;15174:5;15111:69;;;;;;;;;;;;;;;;;;;14573:615;;;;;;;:::o;2193:136::-;2251:7;2278:43;2282:1;2285;2278:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2271:50;;2193:136;;;;:::o;2005:179::-;2063:7;2083:9;2099:1;2095;:5;;;;:::i;:::-;2083:17;;2124:1;2119;:6;;2111:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2175:1;2168:8;;;2005:179;;;;:::o;14159:211::-;14212:19;14234:10;:8;:10::i;:::-;14212:32;;14255:13;14271:22;14281:11;14271:5;:9;;:22;;;;:::i;:::-;14255:38;;14329:33;14356:5;14329:7;:22;14345:4;14329:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14304:7;:22;14320:4;14304:22;;;;;;;;;;;;;;;:58;;;;14201:169;;14159:211;:::o;14379:147::-;14457:17;14469:4;14457:7;;:11;;:17;;;;:::i;:::-;14447:7;:27;;;;14498:20;14513:4;14498:10;;:14;;:20;;;;:::i;:::-;14485:10;:33;;;;14379:147;;:::o;15197:469::-;15366:7;15388;15410;15445:12;15460:30;15486:3;15460:21;15472:8;15460:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15445:45;;15501:13;15517:28;15541:3;15517:19;15529:6;15517:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15501:44;;15556:23;15582:28;15604:5;15582:17;15594:4;15582:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15556:54;;15629:15;15646:4;15652:5;15621:37;;;;;;;;;15197:469;;;;;;;:::o;15675:534::-;15869:7;15891;15913;15948:15;15966:24;15978:11;15966:7;:11;;:24;;;;:::i;:::-;15948:42;;16001:12;16016:21;16025:11;16016:4;:8;;:21;;;;:::i;:::-;16001:36;;16048:13;16064:22;16074:11;16064:5;:9;;:22;;;;:::i;:::-;16048:38;;16097:23;16123:28;16145:5;16123:17;16135:4;16123:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16097:54;;16170:7;16179:15;16196:4;16162:39;;;;;;;;;;15675:534;;;;;;;;:::o;2571:246::-;2629:7;2658:1;2653;:6;2649:47;;2683:1;2676:8;;;;2649:47;2706:9;2722:1;2718;:5;;;;:::i;:::-;2706:17;;2751:1;2746;2742;:5;;;;:::i;:::-;:10;2734:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2808:1;2801:8;;;2571:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:246::-;4152:1;4162:113;4176:6;4173:1;4170:13;4162:113;;;4261:1;4256:3;4252:11;4246:18;4242:1;4237:3;4233:11;4226:39;4198:2;4195:1;4191:10;4186:15;;4162:113;;;4309:1;4300:6;4295:3;4291:16;4284:27;4133:184;4071:246;;;:::o;4323:377::-;4411:3;4439:39;4472:5;4439:39;:::i;:::-;4494:71;4558:6;4553:3;4494:71;:::i;:::-;4487:78;;4574:65;4632:6;4627:3;4620:4;4613:5;4609:16;4574:65;:::i;:::-;4664:29;4686:6;4664:29;:::i;:::-;4659:3;4655:39;4648:46;;4415:285;4323:377;;;;:::o;4706:313::-;4819:4;4857:2;4846:9;4842:18;4834:26;;4906:9;4900:4;4896:20;4892:1;4881:9;4877:17;4870:47;4934:78;5007:4;4998:6;4934:78;:::i;:::-;4926:86;;4706:313;;;;:::o;5025:77::-;5062:7;5091:5;5080:16;;5025:77;;;:::o;5108:122::-;5181:24;5199:5;5181:24;:::i;:::-;5174:5;5171:35;5161:63;;5220:1;5217;5210:12;5161:63;5108:122;:::o;5236:139::-;5282:5;5320:6;5307:20;5298:29;;5336:33;5363:5;5336:33;:::i;:::-;5236:139;;;;:::o;5381:474::-;5449:6;5457;5506:2;5494:9;5485:7;5481:23;5477:32;5474:119;;;5512:79;;:::i;:::-;5474:119;5632:1;5657:53;5702:7;5693:6;5682:9;5678:22;5657:53;:::i;:::-;5647:63;;5603:117;5759:2;5785:53;5830:7;5821:6;5810:9;5806:22;5785:53;:::i;:::-;5775:63;;5730:118;5381:474;;;;;:::o;5861:90::-;5895:7;5938:5;5931:13;5924:21;5913:32;;5861:90;;;:::o;5957:109::-;6038:21;6053:5;6038:21;:::i;:::-;6033:3;6026:34;5957:109;;:::o;6072:210::-;6159:4;6197:2;6186:9;6182:18;6174:26;;6210:65;6272:1;6261:9;6257:17;6248:6;6210:65;:::i;:::-;6072:210;;;;:::o;6288:60::-;6316:3;6337:5;6330:12;;6288:60;;;:::o;6354:142::-;6404:9;6437:53;6455:34;6464:24;6482:5;6464:24;:::i;:::-;6455:34;:::i;:::-;6437:53;:::i;:::-;6424:66;;6354:142;;;:::o;6502:126::-;6552:9;6585:37;6616:5;6585:37;:::i;:::-;6572:50;;6502:126;;;:::o;6634:152::-;6710:9;6743:37;6774:5;6743:37;:::i;:::-;6730:50;;6634:152;;;:::o;6792:183::-;6905:63;6962:5;6905:63;:::i;:::-;6900:3;6893:76;6792:183;;:::o;6981:274::-;7100:4;7138:2;7127:9;7123:18;7115:26;;7151:97;7245:1;7234:9;7230:17;7221:6;7151:97;:::i;:::-;6981:274;;;;:::o;7261:118::-;7348:24;7366:5;7348:24;:::i;:::-;7343:3;7336:37;7261:118;;:::o;7385:222::-;7478:4;7516:2;7505:9;7501:18;7493:26;;7529:71;7597:1;7586:9;7582:17;7573:6;7529:71;:::i;:::-;7385:222;;;;:::o;7613:619::-;7690:6;7698;7706;7755:2;7743:9;7734:7;7730:23;7726:32;7723:119;;;7761:79;;:::i;:::-;7723:119;7881:1;7906:53;7951:7;7942:6;7931:9;7927:22;7906:53;:::i;:::-;7896:63;;7852:117;8008:2;8034:53;8079:7;8070:6;8059:9;8055:22;8034:53;:::i;:::-;8024:63;;7979:118;8136:2;8162:53;8207:7;8198:6;8187:9;8183:22;8162:53;:::i;:::-;8152:63;;8107:118;7613:619;;;;;:::o;8238:86::-;8273:7;8313:4;8306:5;8302:16;8291:27;;8238:86;;;:::o;8330:112::-;8413:22;8429:5;8413:22;:::i;:::-;8408:3;8401:35;8330:112;;:::o;8448:214::-;8537:4;8575:2;8564:9;8560:18;8552:26;;8588:67;8652:1;8641:9;8637:17;8628:6;8588:67;:::i;:::-;8448:214;;;;:::o;8668:118::-;8755:24;8773:5;8755:24;:::i;:::-;8750:3;8743:37;8668:118;;:::o;8792:222::-;8885:4;8923:2;8912:9;8908:18;8900:26;;8936:71;9004:1;8993:9;8989:17;8980:6;8936:71;:::i;:::-;8792:222;;;;:::o;9020:116::-;9090:21;9105:5;9090:21;:::i;:::-;9083:5;9080:32;9070:60;;9126:1;9123;9116:12;9070:60;9020:116;:::o;9142:133::-;9185:5;9223:6;9210:20;9201:29;;9239:30;9263:5;9239:30;:::i;:::-;9142:133;;;;:::o;9281:747::-;9358:6;9366;9374;9382;9431:3;9419:9;9410:7;9406:23;9402:33;9399:120;;;9438:79;;:::i;:::-;9399:120;9558:1;9583:53;9628:7;9619:6;9608:9;9604:22;9583:53;:::i;:::-;9573:63;;9529:117;9685:2;9711:50;9753:7;9744:6;9733:9;9729:22;9711:50;:::i;:::-;9701:60;;9656:115;9810:2;9836:50;9878:7;9869:6;9858:9;9854:22;9836:50;:::i;:::-;9826:60;;9781:115;9935:2;9961:50;10003:7;9994:6;9983:9;9979:22;9961:50;:::i;:::-;9951:60;;9906:115;9281:747;;;;;;;:::o;10034:329::-;10093:6;10142:2;10130:9;10121:7;10117:23;10113:32;10110:119;;;10148:79;;:::i;:::-;10110:119;10268:1;10293:53;10338:7;10329:6;10318:9;10314:22;10293:53;:::i;:::-;10283:63;;10239:117;10034:329;;;;:::o;10369:323::-;10425:6;10474:2;10462:9;10453:7;10449:23;10445:32;10442:119;;;10480:79;;:::i;:::-;10442:119;10600:1;10625:50;10667:7;10658:6;10647:9;10643:22;10625:50;:::i;:::-;10615:60;;10571:114;10369:323;;;;:::o;10698:329::-;10757:6;10806:2;10794:9;10785:7;10781:23;10777:32;10774:119;;;10812:79;;:::i;:::-;10774:119;10932:1;10957:53;11002:7;10993:6;10982:9;10978:22;10957:53;:::i;:::-;10947:63;;10903:117;10698:329;;;;:::o;11033:765::-;11119:6;11127;11135;11143;11192:3;11180:9;11171:7;11167:23;11163:33;11160:120;;;11199:79;;:::i;:::-;11160:120;11319:1;11344:53;11389:7;11380:6;11369:9;11365:22;11344:53;:::i;:::-;11334:63;;11290:117;11446:2;11472:53;11517:7;11508:6;11497:9;11493:22;11472:53;:::i;:::-;11462:63;;11417:118;11574:2;11600:53;11645:7;11636:6;11625:9;11621:22;11600:53;:::i;:::-;11590:63;;11545:118;11702:2;11728:53;11773:7;11764:6;11753:9;11749:22;11728:53;:::i;:::-;11718:63;;11673:118;11033:765;;;;;;;:::o;11804:117::-;11913:1;11910;11903:12;11944:568;12017:8;12027:6;12077:3;12070:4;12062:6;12058:17;12054:27;12044:122;;12085:79;;:::i;:::-;12044:122;12198:6;12185:20;12175:30;;12228:18;12220:6;12217:30;12214:117;;;12250:79;;:::i;:::-;12214:117;12364:4;12356:6;12352:17;12340:29;;12418:3;12410:4;12402:6;12398:17;12388:8;12384:32;12381:41;12378:128;;;12425:79;;:::i;:::-;12378:128;11944:568;;;;;:::o;12518:698::-;12610:6;12618;12626;12675:2;12663:9;12654:7;12650:23;12646:32;12643:119;;;12681:79;;:::i;:::-;12643:119;12829:1;12818:9;12814:17;12801:31;12859:18;12851:6;12848:30;12845:117;;;12881:79;;:::i;:::-;12845:117;12994:80;13066:7;13057:6;13046:9;13042:22;12994:80;:::i;:::-;12976:98;;;;12772:312;13123:2;13149:50;13191:7;13182:6;13171:9;13167:22;13149:50;:::i;:::-;13139:60;;13094:115;12518:698;;;;;:::o;13222:474::-;13290:6;13298;13347:2;13335:9;13326:7;13322:23;13318:32;13315:119;;;13353:79;;:::i;:::-;13315:119;13473:1;13498:53;13543:7;13534:6;13523:9;13519:22;13498:53;:::i;:::-;13488:63;;13444:117;13600:2;13626:53;13671:7;13662:6;13651:9;13647:22;13626:53;:::i;:::-;13616:63;;13571:118;13222:474;;;;;:::o;13702:182::-;13842:34;13838:1;13830:6;13826:14;13819:58;13702:182;:::o;13890:366::-;14032:3;14053:67;14117:2;14112:3;14053:67;:::i;:::-;14046:74;;14129:93;14218:3;14129:93;:::i;:::-;14247:2;14242:3;14238:12;14231:19;;13890:366;;;:::o;14262:419::-;14428:4;14466:2;14455:9;14451:18;14443:26;;14515:9;14509:4;14505:20;14501:1;14490:9;14486:17;14479:47;14543:131;14669:4;14543:131;:::i;:::-;14535:139;;14262:419;;;:::o;14687:180::-;14735:77;14732:1;14725:88;14832:4;14829:1;14822:15;14856:4;14853:1;14846:15;14873:180;14921:77;14918:1;14911:88;15018:4;15015:1;15008:15;15042:4;15039:1;15032:15;15059:233;15098:3;15121:24;15139:5;15121:24;:::i;:::-;15112:33;;15167:66;15160:5;15157:77;15154:103;;15237:18;;:::i;:::-;15154:103;15284:1;15277:5;15273:13;15266:20;;15059:233;;;:::o;15298:220::-;15438:34;15434:1;15426:6;15422:14;15415:58;15507:3;15502:2;15494:6;15490:15;15483:28;15298:220;:::o;15524:366::-;15666:3;15687:67;15751:2;15746:3;15687:67;:::i;:::-;15680:74;;15763:93;15852:3;15763:93;:::i;:::-;15881:2;15876:3;15872:12;15865:19;;15524:366;;;:::o;15896:419::-;16062:4;16100:2;16089:9;16085:18;16077:26;;16149:9;16143:4;16139:20;16135:1;16124:9;16120:17;16113:47;16177:131;16303:4;16177:131;:::i;:::-;16169:139;;15896:419;;;:::o;16321:180::-;16461:32;16457:1;16449:6;16445:14;16438:56;16321:180;:::o;16507:366::-;16649:3;16670:67;16734:2;16729:3;16670:67;:::i;:::-;16663:74;;16746:93;16835:3;16746:93;:::i;:::-;16864:2;16859:3;16855:12;16848:19;;16507:366;;;:::o;16879:419::-;17045:4;17083:2;17072:9;17068:18;17060:26;;17132:9;17126:4;17122:20;17118:1;17107:9;17103:17;17096:47;17160:131;17286:4;17160:131;:::i;:::-;17152:139;;16879:419;;;:::o;17304:225::-;17444:34;17440:1;17432:6;17428:14;17421:58;17513:8;17508:2;17500:6;17496:15;17489:33;17304:225;:::o;17535:366::-;17677:3;17698:67;17762:2;17757:3;17698:67;:::i;:::-;17691:74;;17774:93;17863:3;17774:93;:::i;:::-;17892:2;17887:3;17883:12;17876:19;;17535:366;;;:::o;17907:419::-;18073:4;18111:2;18100:9;18096:18;18088:26;;18160:9;18154:4;18150:20;18146:1;18135:9;18131:17;18124:47;18188:131;18314:4;18188:131;:::i;:::-;18180:139;;17907:419;;;:::o;18332:180::-;18472:32;18468:1;18460:6;18456:14;18449:56;18332:180;:::o;18518:366::-;18660:3;18681:67;18745:2;18740:3;18681:67;:::i;:::-;18674:74;;18757:93;18846:3;18757:93;:::i;:::-;18875:2;18870:3;18866:12;18859:19;;18518:366;;;:::o;18890:419::-;19056:4;19094:2;19083:9;19079:18;19071:26;;19143:9;19137:4;19133:20;19129:1;19118:9;19114:17;19107:47;19171:131;19297:4;19171:131;:::i;:::-;19163:139;;18890:419;;;:::o;19315:178::-;19455:30;19451:1;19443:6;19439:14;19432:54;19315:178;:::o;19499:366::-;19641:3;19662:67;19726:2;19721:3;19662:67;:::i;:::-;19655:74;;19738:93;19827:3;19738:93;:::i;:::-;19856:2;19851:3;19847:12;19840:19;;19499:366;;;:::o;19871:419::-;20037:4;20075:2;20064:9;20060:18;20052:26;;20124:9;20118:4;20114:20;20110:1;20099:9;20095:17;20088:47;20152:131;20278:4;20152:131;:::i;:::-;20144:139;;19871:419;;;:::o;20296:182::-;20436:34;20432:1;20424:6;20420:14;20413:58;20296:182;:::o;20484:366::-;20626:3;20647:67;20711:2;20706:3;20647:67;:::i;:::-;20640:74;;20723:93;20812:3;20723:93;:::i;:::-;20841:2;20836:3;20832:12;20825:19;;20484:366;;;:::o;20856:419::-;21022:4;21060:2;21049:9;21045:18;21037:26;;21109:9;21103:4;21099:20;21095:1;21084:9;21080:17;21073:47;21137:131;21263:4;21137:131;:::i;:::-;21129:139;;20856:419;;;:::o;21281:180::-;21421:32;21417:1;21409:6;21405:14;21398:56;21281:180;:::o;21467:366::-;21609:3;21630:67;21694:2;21689:3;21630:67;:::i;:::-;21623:74;;21706:93;21795:3;21706:93;:::i;:::-;21824:2;21819:3;21815:12;21808:19;;21467:366;;;:::o;21839:419::-;22005:4;22043:2;22032:9;22028:18;22020:26;;22092:9;22086:4;22082:20;22078:1;22067:9;22063:17;22056:47;22120:131;22246:4;22120:131;:::i;:::-;22112:139;;21839:419;;;:::o;22264:177::-;22404:29;22400:1;22392:6;22388:14;22381:53;22264:177;:::o;22447:366::-;22589:3;22610:67;22674:2;22669:3;22610:67;:::i;:::-;22603:74;;22686:93;22775:3;22686:93;:::i;:::-;22804:2;22799:3;22795:12;22788:19;;22447:366;;;:::o;22819:419::-;22985:4;23023:2;23012:9;23008:18;23000:26;;23072:9;23066:4;23062:20;23058:1;23047:9;23043:17;23036:47;23100:131;23226:4;23100:131;:::i;:::-;23092:139;;22819:419;;;:::o;23244:236::-;23384:34;23380:1;23372:6;23368:14;23361:58;23453:19;23448:2;23440:6;23436:15;23429:44;23244:236;:::o;23486:366::-;23628:3;23649:67;23713:2;23708:3;23649:67;:::i;:::-;23642:74;;23725:93;23814:3;23725:93;:::i;:::-;23843:2;23838:3;23834:12;23827:19;;23486:366;;;:::o;23858:419::-;24024:4;24062:2;24051:9;24047:18;24039:26;;24111:9;24105:4;24101:20;24097:1;24086:9;24082:17;24075:47;24139:131;24265:4;24139:131;:::i;:::-;24131:139;;23858:419;;;:::o;24283:171::-;24423:23;24419:1;24411:6;24407:14;24400:47;24283:171;:::o;24460:366::-;24602:3;24623:67;24687:2;24682:3;24623:67;:::i;:::-;24616:74;;24699:93;24788:3;24699:93;:::i;:::-;24817:2;24812:3;24808:12;24801:19;;24460:366;;;:::o;24832:419::-;24998:4;25036:2;25025:9;25021:18;25013:26;;25085:9;25079:4;25075:20;25071:1;25060:9;25056:17;25049:47;25113:131;25239:4;25113:131;:::i;:::-;25105:139;;24832:419;;;:::o;25257:178::-;25397:30;25393:1;25385:6;25381:14;25374:54;25257:178;:::o;25441:366::-;25583:3;25604:67;25668:2;25663:3;25604:67;:::i;:::-;25597:74;;25680:93;25769:3;25680:93;:::i;:::-;25798:2;25793:3;25789:12;25782:19;;25441:366;;;:::o;25813:419::-;25979:4;26017:2;26006:9;26002:18;25994:26;;26066:9;26060:4;26056:20;26052:1;26041:9;26037:17;26030:47;26094:131;26220:4;26094:131;:::i;:::-;26086:139;;25813:419;;;:::o;26238:191::-;26278:3;26297:20;26315:1;26297:20;:::i;:::-;26292:25;;26331:20;26349:1;26331:20;:::i;:::-;26326:25;;26374:1;26371;26367:9;26360:16;;26395:3;26392:1;26389:10;26386:36;;;26402:18;;:::i;:::-;26386:36;26238:191;;;;:::o;26435:169::-;26575:21;26571:1;26563:6;26559:14;26552:45;26435:169;:::o;26610:366::-;26752:3;26773:67;26837:2;26832:3;26773:67;:::i;:::-;26766:74;;26849:93;26938:3;26849:93;:::i;:::-;26967:2;26962:3;26958:12;26951:19;;26610:366;;;:::o;26982:419::-;27148:4;27186:2;27175:9;27171:18;27163:26;;27235:9;27229:4;27225:20;27221:1;27210:9;27206:17;27199:47;27263:131;27389:4;27263:131;:::i;:::-;27255:139;;26982:419;;;:::o;27407:194::-;27447:4;27467:20;27485:1;27467:20;:::i;:::-;27462:25;;27501:20;27519:1;27501:20;:::i;:::-;27496:25;;27545:1;27542;27538:9;27530:17;;27569:1;27563:4;27560:11;27557:37;;;27574:18;;:::i;:::-;27557:37;27407:194;;;;:::o;27607:231::-;27747:34;27743:1;27735:6;27731:14;27724:58;27816:14;27811:2;27803:6;27799:15;27792:39;27607:231;:::o;27844:366::-;27986:3;28007:67;28071:2;28066:3;28007:67;:::i;:::-;28000:74;;28083:93;28172:3;28083:93;:::i;:::-;28201:2;28196:3;28192:12;28185:19;;27844:366;;;:::o;28216:419::-;28382:4;28420:2;28409:9;28405:18;28397:26;;28469:9;28463:4;28459:20;28455:1;28444:9;28440:17;28433:47;28497:131;28623:4;28497:131;:::i;:::-;28489:139;;28216:419;;;:::o;28641:143::-;28698:5;28729:6;28723:13;28714:22;;28745:33;28772:5;28745:33;:::i;:::-;28641:143;;;;:::o;28790:351::-;28860:6;28909:2;28897:9;28888:7;28884:23;28880:32;28877:119;;;28915:79;;:::i;:::-;28877:119;29035:1;29060:64;29116:7;29107:6;29096:9;29092:22;29060:64;:::i;:::-;29050:74;;29006:128;28790:351;;;;:::o;29147:85::-;29192:7;29221:5;29210:16;;29147:85;;;:::o;29238:158::-;29296:9;29329:61;29347:42;29356:32;29382:5;29356:32;:::i;:::-;29347:42;:::i;:::-;29329:61;:::i;:::-;29316:74;;29238:158;;;:::o;29402:147::-;29497:45;29536:5;29497:45;:::i;:::-;29492:3;29485:58;29402:147;;:::o;29555:114::-;29622:6;29656:5;29650:12;29640:22;;29555:114;;;:::o;29675:184::-;29774:11;29808:6;29803:3;29796:19;29848:4;29843:3;29839:14;29824:29;;29675:184;;;;:::o;29865:132::-;29932:4;29955:3;29947:11;;29985:4;29980:3;29976:14;29968:22;;29865:132;;;:::o;30003:108::-;30080:24;30098:5;30080:24;:::i;:::-;30075:3;30068:37;30003:108;;:::o;30117:179::-;30186:10;30207:46;30249:3;30241:6;30207:46;:::i;:::-;30285:4;30280:3;30276:14;30262:28;;30117:179;;;;:::o;30302:113::-;30372:4;30404;30399:3;30395:14;30387:22;;30302:113;;;:::o;30451:732::-;30570:3;30599:54;30647:5;30599:54;:::i;:::-;30669:86;30748:6;30743:3;30669:86;:::i;:::-;30662:93;;30779:56;30829:5;30779:56;:::i;:::-;30858:7;30889:1;30874:284;30899:6;30896:1;30893:13;30874:284;;;30975:6;30969:13;31002:63;31061:3;31046:13;31002:63;:::i;:::-;30995:70;;31088:60;31141:6;31088:60;:::i;:::-;31078:70;;30934:224;30921:1;30918;30914:9;30909:14;;30874:284;;;30878:14;31174:3;31167:10;;30575:608;;;30451:732;;;;:::o;31189:831::-;31452:4;31490:3;31479:9;31475:19;31467:27;;31504:71;31572:1;31561:9;31557:17;31548:6;31504:71;:::i;:::-;31585:80;31661:2;31650:9;31646:18;31637:6;31585:80;:::i;:::-;31712:9;31706:4;31702:20;31697:2;31686:9;31682:18;31675:48;31740:108;31843:4;31834:6;31740:108;:::i;:::-;31732:116;;31858:72;31926:2;31915:9;31911:18;31902:6;31858:72;:::i;:::-;31940:73;32008:3;31997:9;31993:19;31984:6;31940:73;:::i;:::-;31189:831;;;;;;;;:::o;32026:180::-;32074:77;32071:1;32064:88;32171:4;32168:1;32161:15;32195:4;32192:1;32185:15;32212:185;32252:1;32269:20;32287:1;32269:20;:::i;:::-;32264:25;;32303:20;32321:1;32303:20;:::i;:::-;32298:25;;32342:1;32332:35;;32347:18;;:::i;:::-;32332:35;32389:1;32386;32382:9;32377:14;;32212:185;;;;:::o;32403:177::-;32543:29;32539:1;32531:6;32527:14;32520:53;32403:177;:::o;32586:366::-;32728:3;32749:67;32813:2;32808:3;32749:67;:::i;:::-;32742:74;;32825:93;32914:3;32825:93;:::i;:::-;32943:2;32938:3;32934:12;32927:19;;32586:366;;;:::o;32958:419::-;33124:4;33162:2;33151:9;33147:18;33139:26;;33211:9;33205:4;33201:20;33197:1;33186:9;33182:17;33175:47;33239:131;33365:4;33239:131;:::i;:::-;33231:139;;32958:419;;;:::o;33383:410::-;33423:7;33446:20;33464:1;33446:20;:::i;:::-;33441:25;;33480:20;33498:1;33480:20;:::i;:::-;33475:25;;33535:1;33532;33528:9;33557:30;33575:11;33557:30;:::i;:::-;33546:41;;33736:1;33727:7;33723:15;33720:1;33717:22;33697:1;33690:9;33670:83;33647:139;;33766:18;;:::i;:::-;33647:139;33431:362;33383:410;;;;:::o;33799:220::-;33939:34;33935:1;33927:6;33923:14;33916:58;34008:3;34003:2;33995:6;33991:15;33984:28;33799:220;:::o;34025:366::-;34167:3;34188:67;34252:2;34247:3;34188:67;:::i;:::-;34181:74;;34264:93;34353:3;34264:93;:::i;:::-;34382:2;34377:3;34373:12;34366:19;;34025:366;;;:::o;34397:419::-;34563:4;34601:2;34590:9;34586:18;34578:26;;34650:9;34644:4;34640:20;34636:1;34625:9;34621:17;34614:47;34678:131;34804:4;34678:131;:::i;:::-;34670:139;;34397:419;;;:::o
Swarm Source
ipfs://b4930679473f6c18be3f3fe87ed2d4fa88b14048e3ebdae492f5f2b4ab6223d4
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.