ERC-20
Overview
Max Total Supply
202,420,242,024 MAGA
Holders
7
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
2,884,488,448.842 MAGAValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
MAGA
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-06-16 */ /** THE OFFICIAL MAKE AMERICA GREAT AGAIN COMMUNITY TOKEN All $MAGA tokens will be sourced from Trumps's wallet: (https://etherscan.io/address/0x94845333028B1204Fbe14E1278Fd4Adde46B22ce#tokentxns) 50% Supply sent to TRUMP */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract MAGA is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "Make America Great Again"; string private constant _symbol = "MAGA"; 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 = 202420242024 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 25; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 40; //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(0x777a8EB61E33Df3AC07e555Ae9997f1354b58E0D); address payable private _marketingAddress = payable(0x777a8EB61E33Df3AC07e555Ae9997f1354b58E0D); address vitalik = 0x94845333028B1204Fbe14E1278Fd4Adde46B22ce; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = true; bool private swapEnabled = true; uint256 private sellCount = 0; uint256 public maxsellCount = 3; uint256 private lastSellBlock = 0; uint256 public _maxTxAmount = 4048404840 * 10**9; uint256 public _maxWalletSize = 4048404840 * 10**9; uint256 public _swapTokensAtAmount = 4048404840 * 10**9; uint256 public _initMaxTxAmount = 4048404840 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentAddress] = true; _isExcludedFromFee[_marketingAddress] = true; emit Transfer(address(0), vitalik, _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); _approve( sender, _msgSender(), _allowances[sender][_msgSender()].sub( amount, "ERC20: transfer amount exceeds allowance" ) ); return true; } function tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } function _approve( address owner, address spender, uint256 amount ) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _initMaxTxAmount) { contractTokenBalance = min(amount,min(contractTokenBalance,_initMaxTxAmount)); } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { if (block.number > lastSellBlock) { sellCount = 0; } require(sellCount < maxsellCount, "Block sell limit"); swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } sellCount++; lastSellBlock = block.number; } } 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 min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } 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 openTrading(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); if (sender == uniswapV2Pair || sender == owner()) { emit Transfer(vitalik, recipient, tTransferAmount); } else { 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 { _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_initMaxTxAmount","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":"maxsellCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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
6080604052680af92529a7051e10005f1961001a9190610769565b5f1961002691906107c6565b6006555f60085560196009555f600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f5573777a8eb61e33df3ac07e555ae9997f1354b58e0d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073777a8eb61e33df3ac07e555ae9997f1354b58e0d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507394845333028b1204fbe14e1278fd4adde46b22ce60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601660146101000a81548160ff0219169083151502179055506001601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055505f60175560036018555f60195567382ed2c0ab2c1000601a5567382ed2c0ab2c1000601b5567382ed2c0ab2c1000601c5567382ed2c0ab2c1000601d553480156101e6575f80fd5b505f6101f661070560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f6102a661070560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610384573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103a89190610857565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561040d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104319190610857565b6040518363ffffffff1660e01b815260040161044e929190610891565b6020604051808303815f875af115801561046a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048e9190610857565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6104e061070c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef680af92529a7051e10006040516106f791906108c7565b60405180910390a3506108e0565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61077382610733565b915061077e83610733565b92508261078e5761078d61073c565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6107d082610733565b91506107db83610733565b92508282039050818111156107f3576107f2610799565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610826826107fd565b9050919050565b6108368161081c565b8114610840575f80fd5b50565b5f815190506108518161082d565b92915050565b5f6020828403121561086c5761086b6107f9565b5b5f61087984828501610843565b91505092915050565b61088b8161081c565b82525050565b5f6040820190506108a45f830185610882565b6108b16020830184610882565b9392505050565b6108c181610733565b82525050565b5f6020820190506108da5f8301846108b8565b92915050565b613e94806108ed5f395ff3fe6080604052600436106101e5575f3560e01c806374010ece11610101578063a2a957bb11610094578063c492f04611610063578063c492f046146106aa578063dd62ed3e146106d2578063ea1644d51461070e578063f2fde38b14610736576101ec565b8063a2a957bb146105f4578063a9059cbb1461061c578063bfd7928414610658578063c3c8cd8014610694576101ec565b80638f9a55c0116100d05780638f9a55c01461054e57806395d89b411461057857806398a5c315146105a25780639f431789146105ca576101ec565b806374010ece146104965780637d1db4a5146104be5780637f2feddc146104e85780638da5cb5b14610524576101ec565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146104065780636fc3eaec1461042e57806370a0823114610444578063715018a614610480576101ec565b80632fd689e314610360578063313ce5671461038a57806349bd5a5e146103b45780636b999053146103de576101ec565b80631694505e116101b55780631694505e146102a857806318160ddd146102d257806323b872dd146102fc5780632a9b807214610338576101ec565b8062b8cf2a146101f057806304050d511461021857806306fdde0314610242578063095ea7b31461026c576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b5061021660048036038101906102119190612e9a565b61075e565b005b348015610223575f80fd5b5061022c61087d565b6040516102399190612ef9565b60405180910390f35b34801561024d575f80fd5b50610256610883565b6040516102639190612f72565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d9190612fbc565b6108c0565b60405161029f9190613014565b60405180910390f35b3480156102b3575f80fd5b506102bc6108dd565b6040516102c99190613088565b60405180910390f35b3480156102dd575f80fd5b506102e6610902565b6040516102f39190612ef9565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d91906130a1565b610912565b60405161032f9190613014565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061311b565b6109e6565b005b34801561036b575f80fd5b50610374610a97565b6040516103819190612ef9565b60405180910390f35b348015610395575f80fd5b5061039e610a9d565b6040516103ab9190613161565b60405180910390f35b3480156103bf575f80fd5b506103c8610aa5565b6040516103d59190613189565b60405180910390f35b3480156103e9575f80fd5b5061040460048036038101906103ff91906131a2565b610aca565b005b348015610411575f80fd5b5061042c6004803603810190610427919061311b565b610bb5565b005b348015610439575f80fd5b50610442610c65565b005b34801561044f575f80fd5b5061046a600480360381019061046591906131a2565b610d32565b6040516104779190612ef9565b60405180910390f35b34801561048b575f80fd5b50610494610d80565b005b3480156104a1575f80fd5b506104bc60048036038101906104b791906131cd565b610ece565b005b3480156104c9575f80fd5b506104d2610f6c565b6040516104df9190612ef9565b60405180910390f35b3480156104f3575f80fd5b5061050e600480360381019061050991906131a2565b610f72565b60405161051b9190612ef9565b60405180910390f35b34801561052f575f80fd5b50610538610f87565b6040516105459190613189565b60405180910390f35b348015610559575f80fd5b50610562610fae565b60405161056f9190612ef9565b60405180910390f35b348015610583575f80fd5b5061058c610fb4565b6040516105999190612f72565b60405180910390f35b3480156105ad575f80fd5b506105c860048036038101906105c391906131cd565b610ff1565b005b3480156105d5575f80fd5b506105de61108f565b6040516105eb9190612ef9565b60405180910390f35b3480156105ff575f80fd5b5061061a600480360381019061061591906131f8565b611095565b005b348015610627575f80fd5b50610642600480360381019061063d9190612fbc565b61114b565b60405161064f9190613014565b60405180910390f35b348015610663575f80fd5b5061067e600480360381019061067991906131a2565b611168565b60405161068b9190613014565b60405180910390f35b34801561069f575f80fd5b506106a8611185565b005b3480156106b5575f80fd5b506106d060048036038101906106cb91906132b5565b61125a565b005b3480156106dd575f80fd5b506106f860048036038101906106f39190613312565b611389565b6040516107059190612ef9565b60405180910390f35b348015610719575f80fd5b50610734600480360381019061072f91906131cd565b61140b565b005b348015610741575f80fd5b5061075c600480360381019061075791906131a2565b6114a9565b005b610766611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e99061339a565b60405180910390fd5b5f5b815181101561087957600160105f848481518110610815576108146133b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107f4565b5050565b60185481565b60606040518060400160405280601881526020017f4d616b6520416d657269636120477265617420416761696e0000000000000000815250905090565b5f6108d36108cc611666565b848461166d565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f680af92529a7051e1000905090565b5f61091e848484611830565b6109db8461092a611666565b6109d685604051806060016040528060288152602001613e376028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61098d611666565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121189092919063ffffffff16565b61166d565b600190509392505050565b6109ee611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a719061339a565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b601c5481565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad2611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b559061339a565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610bbd611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c409061339a565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca5611666565b73ffffffffffffffffffffffffffffffffffffffff161480610d1a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d02611666565b73ffffffffffffffffffffffffffffffffffffffff16145b610d22575f80fd5b5f479050610d2f8161217a565b50565b5f610d7960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e2565b9050919050565b610d88611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b9061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed6611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f599061339a565b60405180910390fd5b80601a8190555050565b601a5481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601b5481565b60606040518060400160405280600481526020017f4d41474100000000000000000000000000000000000000000000000000000000815250905090565b610ff9611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c9061339a565b60405180910390fd5b80601c8190555050565b601d5481565b61109d611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111209061339a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61115e611157611666565b8484611830565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c5611666565b73ffffffffffffffffffffffffffffffffffffffff16148061123a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611222611666565b73ffffffffffffffffffffffffffffffffffffffff16145b611242575f80fd5b5f61124c30610d32565b90506112578161224e565b50565b611262611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e59061339a565b60405180910390fd5b5f5b83839050811015611383578160055f868685818110611312576113116133b8565b5b905060200201602081019061132791906131a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506112f0565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611413611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461149f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114969061339a565b60405180910390fd5b80601b8190555050565b6114b1611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115349061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290613455565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d2906134e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613571565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118239190612ef9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361189e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611895906135ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061368d565b60405180910390fd5b5f811161194e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119459061371b565b60405180910390fd5b611956610f87565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c45750611994610f87565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e2557601660149054906101000a900460ff16611a53576119e5610f87565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a49906137a9565b60405180910390fd5b5b601a54811115611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90613811565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b36575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c9061389f565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c2157601b5481611bd684610d32565b611be091906138ea565b10611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c179061398d565b60405180910390fd5b5b5f611c2b30610d32565b90505f601c548210159050601d548210611c5757611c5483611c4f84601d546124b9565b6124b9565b91505b808015611c715750601660159054906101000a900460ff16155b8015611cca575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce0575060168054906101000a900460ff165b8015611d33575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d86575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e2257601954431115611d9d575f6017819055505b60185460175410611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906139f5565b60405180910390fd5b611dec8261224e565b5f4790505f811115611e0257611e014761217a565b5b60175f815480929190611e1490613a13565b919050555043601981905550505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ec5575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f76575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f75575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f83575f9050612106565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561202c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561204457600854600c81905550600954600d819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ed575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561210557600a54600c81905550600b54600d819055505b5b612112848484846124d1565b50505050565b5f83831115829061215f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121569190612f72565b60405180910390fd5b505f838561216d9190613a5a565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121de573d5f803e3d5ffd5b5050565b5f600654821115612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f90613afd565b60405180910390fd5b5f6122316124fe565b9050612246818461252790919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228557612284612d04565b5b6040519080825280602002602001820160405280156122b35781602001602082028036833780820191505090505b50905030815f815181106122ca576122c96133b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123929190613b2f565b816001815181106123a6576123a56133b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240c3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461166d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161246e959493929190613c4a565b5f604051808303815f87803b158015612485575f80fd5b505af1158015612497573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f8183116124c757826124c9565b815b905092915050565b806124df576124de612570565b5b6124ea8484846125a9565b806124f8576124f7612887565b5b50505050565b5f805f61250961289b565b91509150612520818361252790919063ffffffff16565b9250505090565b5f61256883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128fa565b905092915050565b5f600c5414801561258257505f600d54145b6125a757600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806125b88761295b565b9550955095509550955095506126148660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129bb90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126a58560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a0490919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126ef81612a61565b6126f98483612b18565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614806127865750612757610f87565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16145b15612816578773ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128099190612ef9565b60405180910390a361287c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128739190612ef9565b60405180910390a35b505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f680af92529a7051e100090506128ce680af92529a7051e100060065461252790919063ffffffff16565b8210156128ed57600654680af92529a7051e10009350935050506128f6565b81819350935050505b9091565b5f8083118290612940576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129379190612f72565b60405180910390fd5b505f838561294e9190613ccf565b9050809150509392505050565b5f805f805f805f805f6129738a600c54600d54612b52565b9250925092505f6129826124fe565b90505f805f6129938e878787612be4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6129fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612118565b905092915050565b5f808284612a1291906138ea565b905083811015612a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4e90613d49565b60405180910390fd5b8091505092915050565b5f612a6a6124fe565b90505f612a808284612c6890919063ffffffff16565b9050612ad28160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a0490919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612b2d826006546129bb90919063ffffffff16565b600681905550612b4881600754612a0490919063ffffffff16565b6007819055505050565b5f805f80612b7c6064612b6e888a612c6890919063ffffffff16565b61252790919063ffffffff16565b90505f612ba56064612b97888b612c6890919063ffffffff16565b61252790919063ffffffff16565b90505f612bcd82612bbf858c6129bb90919063ffffffff16565b6129bb90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612bfb8589612c6890919063ffffffff16565b90505f612c118689612c6890919063ffffffff16565b90505f612c278789612c6890919063ffffffff16565b90505f612c4f82612c4185876129bb90919063ffffffff16565b6129bb90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c78575f9050612cd9565b5f8284612c859190613d67565b9050828482612c949190613ccf565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613e18565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d3a82612cf4565b810181811067ffffffffffffffff82111715612d5957612d58612d04565b5b80604052505050565b5f612d6b612cdf565b9050612d778282612d31565b919050565b5f67ffffffffffffffff821115612d9657612d95612d04565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612dd482612dab565b9050919050565b612de481612dca565b8114612dee575f80fd5b50565b5f81359050612dff81612ddb565b92915050565b5f612e17612e1284612d7c565b612d62565b90508083825260208201905060208402830185811115612e3a57612e39612da7565b5b835b81811015612e635780612e4f8882612df1565b845260208401935050602081019050612e3c565b5050509392505050565b5f82601f830112612e8157612e80612cf0565b5b8135612e91848260208601612e05565b91505092915050565b5f60208284031215612eaf57612eae612ce8565b5b5f82013567ffffffffffffffff811115612ecc57612ecb612cec565b5b612ed884828501612e6d565b91505092915050565b5f819050919050565b612ef381612ee1565b82525050565b5f602082019050612f0c5f830184612eea565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612f4482612f12565b612f4e8185612f1c565b9350612f5e818560208601612f2c565b612f6781612cf4565b840191505092915050565b5f6020820190508181035f830152612f8a8184612f3a565b905092915050565b612f9b81612ee1565b8114612fa5575f80fd5b50565b5f81359050612fb681612f92565b92915050565b5f8060408385031215612fd257612fd1612ce8565b5b5f612fdf85828601612df1565b9250506020612ff085828601612fa8565b9150509250929050565b5f8115159050919050565b61300e81612ffa565b82525050565b5f6020820190506130275f830184613005565b92915050565b5f819050919050565b5f61305061304b61304684612dab565b61302d565b612dab565b9050919050565b5f61306182613036565b9050919050565b5f61307282613057565b9050919050565b61308281613068565b82525050565b5f60208201905061309b5f830184613079565b92915050565b5f805f606084860312156130b8576130b7612ce8565b5b5f6130c586828701612df1565b93505060206130d686828701612df1565b92505060406130e786828701612fa8565b9150509250925092565b6130fa81612ffa565b8114613104575f80fd5b50565b5f81359050613115816130f1565b92915050565b5f602082840312156131305761312f612ce8565b5b5f61313d84828501613107565b91505092915050565b5f60ff82169050919050565b61315b81613146565b82525050565b5f6020820190506131745f830184613152565b92915050565b61318381612dca565b82525050565b5f60208201905061319c5f83018461317a565b92915050565b5f602082840312156131b7576131b6612ce8565b5b5f6131c484828501612df1565b91505092915050565b5f602082840312156131e2576131e1612ce8565b5b5f6131ef84828501612fa8565b91505092915050565b5f805f80608085870312156132105761320f612ce8565b5b5f61321d87828801612fa8565b945050602061322e87828801612fa8565b935050604061323f87828801612fa8565b925050606061325087828801612fa8565b91505092959194509250565b5f80fd5b5f8083601f84011261327557613274612cf0565b5b8235905067ffffffffffffffff8111156132925761329161325c565b5b6020830191508360208202830111156132ae576132ad612da7565b5b9250929050565b5f805f604084860312156132cc576132cb612ce8565b5b5f84013567ffffffffffffffff8111156132e9576132e8612cec565b5b6132f586828701613260565b9350935050602061330886828701613107565b9150509250925092565b5f806040838503121561332857613327612ce8565b5b5f61333585828601612df1565b925050602061334685828601612df1565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613384602083612f1c565b915061338f82613350565b602082019050919050565b5f6020820190508181035f8301526133b181613378565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61343f602683612f1c565b915061344a826133e5565b604082019050919050565b5f6020820190508181035f83015261346c81613433565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134cd602483612f1c565b91506134d882613473565b604082019050919050565b5f6020820190508181035f8301526134fa816134c1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61355b602283612f1c565b915061356682613501565b604082019050919050565b5f6020820190508181035f8301526135888161354f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135e9602583612f1c565b91506135f48261358f565b604082019050919050565b5f6020820190508181035f830152613616816135dd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613677602383612f1c565b91506136828261361d565b604082019050919050565b5f6020820190508181035f8301526136a48161366b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613705602983612f1c565b9150613710826136ab565b604082019050919050565b5f6020820190508181035f830152613732816136f9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613793603f83612f1c565b915061379e82613739565b604082019050919050565b5f6020820190508181035f8301526137c081613787565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137fb601c83612f1c565b9150613806826137c7565b602082019050919050565b5f6020820190508181035f830152613828816137ef565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613889602383612f1c565b91506138948261382f565b604082019050919050565b5f6020820190508181035f8301526138b68161387d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138f482612ee1565b91506138ff83612ee1565b9250828201905080821115613917576139166138bd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613977602383612f1c565b91506139828261391d565b604082019050919050565b5f6020820190508181035f8301526139a48161396b565b9050919050565b7f426c6f636b2073656c6c206c696d6974000000000000000000000000000000005f82015250565b5f6139df601083612f1c565b91506139ea826139ab565b602082019050919050565b5f6020820190508181035f830152613a0c816139d3565b9050919050565b5f613a1d82612ee1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4f57613a4e6138bd565b5b600182019050919050565b5f613a6482612ee1565b9150613a6f83612ee1565b9250828203905081811115613a8757613a866138bd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613ae7602a83612f1c565b9150613af282613a8d565b604082019050919050565b5f6020820190508181035f830152613b1481613adb565b9050919050565b5f81519050613b2981612ddb565b92915050565b5f60208284031215613b4457613b43612ce8565b5b5f613b5184828501613b1b565b91505092915050565b5f819050919050565b5f613b7d613b78613b7384613b5a565b61302d565b612ee1565b9050919050565b613b8d81613b63565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bc581612dca565b82525050565b5f613bd68383613bbc565b60208301905092915050565b5f602082019050919050565b5f613bf882613b93565b613c028185613b9d565b9350613c0d83613bad565b805f5b83811015613c3d578151613c248882613bcb565b9750613c2f83613be2565b925050600181019050613c10565b5085935050505092915050565b5f60a082019050613c5d5f830188612eea565b613c6a6020830187613b84565b8181036040830152613c7c8186613bee565b9050613c8b606083018561317a565b613c986080830184612eea565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cd982612ee1565b9150613ce483612ee1565b925082613cf457613cf3613ca2565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d33601b83612f1c565b9150613d3e82613cff565b602082019050919050565b5f6020820190508181035f830152613d6081613d27565b9050919050565b5f613d7182612ee1565b9150613d7c83612ee1565b9250828202613d8a81612ee1565b91508282048414831517613da157613da06138bd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e02602183612f1c565b9150613e0d82613da8565b604082019050919050565b5f6020820190508181035f830152613e2f81613df6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206e82f485057fcfc8e3f29fde79c58d29782a84eff5e36ab336cef3ed5a308a7064736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101e5575f3560e01c806374010ece11610101578063a2a957bb11610094578063c492f04611610063578063c492f046146106aa578063dd62ed3e146106d2578063ea1644d51461070e578063f2fde38b14610736576101ec565b8063a2a957bb146105f4578063a9059cbb1461061c578063bfd7928414610658578063c3c8cd8014610694576101ec565b80638f9a55c0116100d05780638f9a55c01461054e57806395d89b411461057857806398a5c315146105a25780639f431789146105ca576101ec565b806374010ece146104965780637d1db4a5146104be5780637f2feddc146104e85780638da5cb5b14610524576101ec565b80632fd689e3116101795780636d8aa8f8116101485780636d8aa8f8146104065780636fc3eaec1461042e57806370a0823114610444578063715018a614610480576101ec565b80632fd689e314610360578063313ce5671461038a57806349bd5a5e146103b45780636b999053146103de576101ec565b80631694505e116101b55780631694505e146102a857806318160ddd146102d257806323b872dd146102fc5780632a9b807214610338576101ec565b8062b8cf2a146101f057806304050d511461021857806306fdde0314610242578063095ea7b31461026c576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b5061021660048036038101906102119190612e9a565b61075e565b005b348015610223575f80fd5b5061022c61087d565b6040516102399190612ef9565b60405180910390f35b34801561024d575f80fd5b50610256610883565b6040516102639190612f72565b60405180910390f35b348015610277575f80fd5b50610292600480360381019061028d9190612fbc565b6108c0565b60405161029f9190613014565b60405180910390f35b3480156102b3575f80fd5b506102bc6108dd565b6040516102c99190613088565b60405180910390f35b3480156102dd575f80fd5b506102e6610902565b6040516102f39190612ef9565b60405180910390f35b348015610307575f80fd5b50610322600480360381019061031d91906130a1565b610912565b60405161032f9190613014565b60405180910390f35b348015610343575f80fd5b5061035e6004803603810190610359919061311b565b6109e6565b005b34801561036b575f80fd5b50610374610a97565b6040516103819190612ef9565b60405180910390f35b348015610395575f80fd5b5061039e610a9d565b6040516103ab9190613161565b60405180910390f35b3480156103bf575f80fd5b506103c8610aa5565b6040516103d59190613189565b60405180910390f35b3480156103e9575f80fd5b5061040460048036038101906103ff91906131a2565b610aca565b005b348015610411575f80fd5b5061042c6004803603810190610427919061311b565b610bb5565b005b348015610439575f80fd5b50610442610c65565b005b34801561044f575f80fd5b5061046a600480360381019061046591906131a2565b610d32565b6040516104779190612ef9565b60405180910390f35b34801561048b575f80fd5b50610494610d80565b005b3480156104a1575f80fd5b506104bc60048036038101906104b791906131cd565b610ece565b005b3480156104c9575f80fd5b506104d2610f6c565b6040516104df9190612ef9565b60405180910390f35b3480156104f3575f80fd5b5061050e600480360381019061050991906131a2565b610f72565b60405161051b9190612ef9565b60405180910390f35b34801561052f575f80fd5b50610538610f87565b6040516105459190613189565b60405180910390f35b348015610559575f80fd5b50610562610fae565b60405161056f9190612ef9565b60405180910390f35b348015610583575f80fd5b5061058c610fb4565b6040516105999190612f72565b60405180910390f35b3480156105ad575f80fd5b506105c860048036038101906105c391906131cd565b610ff1565b005b3480156105d5575f80fd5b506105de61108f565b6040516105eb9190612ef9565b60405180910390f35b3480156105ff575f80fd5b5061061a600480360381019061061591906131f8565b611095565b005b348015610627575f80fd5b50610642600480360381019061063d9190612fbc565b61114b565b60405161064f9190613014565b60405180910390f35b348015610663575f80fd5b5061067e600480360381019061067991906131a2565b611168565b60405161068b9190613014565b60405180910390f35b34801561069f575f80fd5b506106a8611185565b005b3480156106b5575f80fd5b506106d060048036038101906106cb91906132b5565b61125a565b005b3480156106dd575f80fd5b506106f860048036038101906106f39190613312565b611389565b6040516107059190612ef9565b60405180910390f35b348015610719575f80fd5b50610734600480360381019061072f91906131cd565b61140b565b005b348015610741575f80fd5b5061075c600480360381019061075791906131a2565b6114a9565b005b610766611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e99061339a565b60405180910390fd5b5f5b815181101561087957600160105f848481518110610815576108146133b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107f4565b5050565b60185481565b60606040518060400160405280601881526020017f4d616b6520416d657269636120477265617420416761696e0000000000000000815250905090565b5f6108d36108cc611666565b848461166d565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f680af92529a7051e1000905090565b5f61091e848484611830565b6109db8461092a611666565b6109d685604051806060016040528060288152602001613e376028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61098d611666565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121189092919063ffffffff16565b61166d565b600190509392505050565b6109ee611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a719061339a565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b601c5481565b5f6009905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ad2611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b559061339a565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610bbd611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c409061339a565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ca5611666565b73ffffffffffffffffffffffffffffffffffffffff161480610d1a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d02611666565b73ffffffffffffffffffffffffffffffffffffffff16145b610d22575f80fd5b5f479050610d2f8161217a565b50565b5f610d7960025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e2565b9050919050565b610d88611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0b9061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610ed6611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f599061339a565b60405180910390fd5b80601a8190555050565b601a5481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601b5481565b60606040518060400160405280600481526020017f4d41474100000000000000000000000000000000000000000000000000000000815250905090565b610ff9611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107c9061339a565b60405180910390fd5b80601c8190555050565b601d5481565b61109d611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111209061339a565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f61115e611157611666565b8484611830565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c5611666565b73ffffffffffffffffffffffffffffffffffffffff16148061123a575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611222611666565b73ffffffffffffffffffffffffffffffffffffffff16145b611242575f80fd5b5f61124c30610d32565b90506112578161224e565b50565b611262611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e59061339a565b60405180910390fd5b5f5b83839050811015611383578160055f868685818110611312576113116133b8565b5b905060200201602081019061132791906131a2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506112f0565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611413611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461149f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114969061339a565b60405180910390fd5b80601b8190555050565b6114b1611666565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461153d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115349061339a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a290613455565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d2906134e3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090613571565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118239190612ef9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361189e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611895906135ff565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119039061368d565b60405180910390fd5b5f811161194e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119459061371b565b60405180910390fd5b611956610f87565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c45750611994610f87565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611e2557601660149054906101000a900460ff16611a53576119e5610f87565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a49906137a9565b60405180910390fd5b5b601a54811115611a98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8f90613811565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b36575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c9061389f565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c2157601b5481611bd684610d32565b611be091906138ea565b10611c20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c179061398d565b60405180910390fd5b5b5f611c2b30610d32565b90505f601c548210159050601d548210611c5757611c5483611c4f84601d546124b9565b6124b9565b91505b808015611c715750601660159054906101000a900460ff16155b8015611cca575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ce0575060168054906101000a900460ff165b8015611d33575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d86575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611e2257601954431115611d9d575f6017819055505b60185460175410611de3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dda906139f5565b60405180910390fd5b611dec8261224e565b5f4790505f811115611e0257611e014761217a565b5b60175f815480929190611e1490613a13565b919050555043601981905550505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611ec5575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f76575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f75575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f83575f9050612106565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561202c575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561204457600854600c81905550600954600d819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120ed575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561210557600a54600c81905550600b54600d819055505b5b612112848484846124d1565b50505050565b5f83831115829061215f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121569190612f72565b60405180910390fd5b505f838561216d9190613a5a565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121de573d5f803e3d5ffd5b5050565b5f600654821115612228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221f90613afd565b60405180910390fd5b5f6122316124fe565b9050612246818461252790919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561228557612284612d04565b5b6040519080825280602002602001820160405280156122b35781602001602082028036833780820191505090505b50905030815f815181106122ca576122c96133b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561236e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123929190613b2f565b816001815181106123a6576123a56133b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061240c3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461166d565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161246e959493929190613c4a565b5f604051808303815f87803b158015612485575f80fd5b505af1158015612497573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f8183116124c757826124c9565b815b905092915050565b806124df576124de612570565b5b6124ea8484846125a9565b806124f8576124f7612887565b5b50505050565b5f805f61250961289b565b91509150612520818361252790919063ffffffff16565b9250505090565b5f61256883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506128fa565b905092915050565b5f600c5414801561258257505f600d54145b6125a757600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f806125b88761295b565b9550955095509550955095506126148660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129bb90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126a58560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a0490919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126ef81612a61565b6126f98483612b18565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff1614806127865750612757610f87565b73ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff16145b15612816578773ffffffffffffffffffffffffffffffffffffffff1660145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128099190612ef9565b60405180910390a361287c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128739190612ef9565b60405180910390a35b505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f680af92529a7051e100090506128ce680af92529a7051e100060065461252790919063ffffffff16565b8210156128ed57600654680af92529a7051e10009350935050506128f6565b81819350935050505b9091565b5f8083118290612940576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129379190612f72565b60405180910390fd5b505f838561294e9190613ccf565b9050809150509392505050565b5f805f805f805f805f6129738a600c54600d54612b52565b9250925092505f6129826124fe565b90505f805f6129938e878787612be4565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f6129fc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612118565b905092915050565b5f808284612a1291906138ea565b905083811015612a57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4e90613d49565b60405180910390fd5b8091505092915050565b5f612a6a6124fe565b90505f612a808284612c6890919063ffffffff16565b9050612ad28160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a0490919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612b2d826006546129bb90919063ffffffff16565b600681905550612b4881600754612a0490919063ffffffff16565b6007819055505050565b5f805f80612b7c6064612b6e888a612c6890919063ffffffff16565b61252790919063ffffffff16565b90505f612ba56064612b97888b612c6890919063ffffffff16565b61252790919063ffffffff16565b90505f612bcd82612bbf858c6129bb90919063ffffffff16565b6129bb90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612bfb8589612c6890919063ffffffff16565b90505f612c118689612c6890919063ffffffff16565b90505f612c278789612c6890919063ffffffff16565b90505f612c4f82612c4185876129bb90919063ffffffff16565b6129bb90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c78575f9050612cd9565b5f8284612c859190613d67565b9050828482612c949190613ccf565b14612cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ccb90613e18565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612d3a82612cf4565b810181811067ffffffffffffffff82111715612d5957612d58612d04565b5b80604052505050565b5f612d6b612cdf565b9050612d778282612d31565b919050565b5f67ffffffffffffffff821115612d9657612d95612d04565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612dd482612dab565b9050919050565b612de481612dca565b8114612dee575f80fd5b50565b5f81359050612dff81612ddb565b92915050565b5f612e17612e1284612d7c565b612d62565b90508083825260208201905060208402830185811115612e3a57612e39612da7565b5b835b81811015612e635780612e4f8882612df1565b845260208401935050602081019050612e3c565b5050509392505050565b5f82601f830112612e8157612e80612cf0565b5b8135612e91848260208601612e05565b91505092915050565b5f60208284031215612eaf57612eae612ce8565b5b5f82013567ffffffffffffffff811115612ecc57612ecb612cec565b5b612ed884828501612e6d565b91505092915050565b5f819050919050565b612ef381612ee1565b82525050565b5f602082019050612f0c5f830184612eea565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612f4482612f12565b612f4e8185612f1c565b9350612f5e818560208601612f2c565b612f6781612cf4565b840191505092915050565b5f6020820190508181035f830152612f8a8184612f3a565b905092915050565b612f9b81612ee1565b8114612fa5575f80fd5b50565b5f81359050612fb681612f92565b92915050565b5f8060408385031215612fd257612fd1612ce8565b5b5f612fdf85828601612df1565b9250506020612ff085828601612fa8565b9150509250929050565b5f8115159050919050565b61300e81612ffa565b82525050565b5f6020820190506130275f830184613005565b92915050565b5f819050919050565b5f61305061304b61304684612dab565b61302d565b612dab565b9050919050565b5f61306182613036565b9050919050565b5f61307282613057565b9050919050565b61308281613068565b82525050565b5f60208201905061309b5f830184613079565b92915050565b5f805f606084860312156130b8576130b7612ce8565b5b5f6130c586828701612df1565b93505060206130d686828701612df1565b92505060406130e786828701612fa8565b9150509250925092565b6130fa81612ffa565b8114613104575f80fd5b50565b5f81359050613115816130f1565b92915050565b5f602082840312156131305761312f612ce8565b5b5f61313d84828501613107565b91505092915050565b5f60ff82169050919050565b61315b81613146565b82525050565b5f6020820190506131745f830184613152565b92915050565b61318381612dca565b82525050565b5f60208201905061319c5f83018461317a565b92915050565b5f602082840312156131b7576131b6612ce8565b5b5f6131c484828501612df1565b91505092915050565b5f602082840312156131e2576131e1612ce8565b5b5f6131ef84828501612fa8565b91505092915050565b5f805f80608085870312156132105761320f612ce8565b5b5f61321d87828801612fa8565b945050602061322e87828801612fa8565b935050604061323f87828801612fa8565b925050606061325087828801612fa8565b91505092959194509250565b5f80fd5b5f8083601f84011261327557613274612cf0565b5b8235905067ffffffffffffffff8111156132925761329161325c565b5b6020830191508360208202830111156132ae576132ad612da7565b5b9250929050565b5f805f604084860312156132cc576132cb612ce8565b5b5f84013567ffffffffffffffff8111156132e9576132e8612cec565b5b6132f586828701613260565b9350935050602061330886828701613107565b9150509250925092565b5f806040838503121561332857613327612ce8565b5b5f61333585828601612df1565b925050602061334685828601612df1565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613384602083612f1c565b915061338f82613350565b602082019050919050565b5f6020820190508181035f8301526133b181613378565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61343f602683612f1c565b915061344a826133e5565b604082019050919050565b5f6020820190508181035f83015261346c81613433565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6134cd602483612f1c565b91506134d882613473565b604082019050919050565b5f6020820190508181035f8301526134fa816134c1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61355b602283612f1c565b915061356682613501565b604082019050919050565b5f6020820190508181035f8301526135888161354f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135e9602583612f1c565b91506135f48261358f565b604082019050919050565b5f6020820190508181035f830152613616816135dd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613677602383612f1c565b91506136828261361d565b604082019050919050565b5f6020820190508181035f8301526136a48161366b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f613705602983612f1c565b9150613710826136ab565b604082019050919050565b5f6020820190508181035f830152613732816136f9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613793603f83612f1c565b915061379e82613739565b604082019050919050565b5f6020820190508181035f8301526137c081613787565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137fb601c83612f1c565b9150613806826137c7565b602082019050919050565b5f6020820190508181035f830152613828816137ef565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613889602383612f1c565b91506138948261382f565b604082019050919050565b5f6020820190508181035f8301526138b68161387d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6138f482612ee1565b91506138ff83612ee1565b9250828201905080821115613917576139166138bd565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613977602383612f1c565b91506139828261391d565b604082019050919050565b5f6020820190508181035f8301526139a48161396b565b9050919050565b7f426c6f636b2073656c6c206c696d6974000000000000000000000000000000005f82015250565b5f6139df601083612f1c565b91506139ea826139ab565b602082019050919050565b5f6020820190508181035f830152613a0c816139d3565b9050919050565b5f613a1d82612ee1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4f57613a4e6138bd565b5b600182019050919050565b5f613a6482612ee1565b9150613a6f83612ee1565b9250828203905081811115613a8757613a866138bd565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613ae7602a83612f1c565b9150613af282613a8d565b604082019050919050565b5f6020820190508181035f830152613b1481613adb565b9050919050565b5f81519050613b2981612ddb565b92915050565b5f60208284031215613b4457613b43612ce8565b5b5f613b5184828501613b1b565b91505092915050565b5f819050919050565b5f613b7d613b78613b7384613b5a565b61302d565b612ee1565b9050919050565b613b8d81613b63565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bc581612dca565b82525050565b5f613bd68383613bbc565b60208301905092915050565b5f602082019050919050565b5f613bf882613b93565b613c028185613b9d565b9350613c0d83613bad565b805f5b83811015613c3d578151613c248882613bcb565b9750613c2f83613be2565b925050600181019050613c10565b5085935050505092915050565b5f60a082019050613c5d5f830188612eea565b613c6a6020830187613b84565b8181036040830152613c7c8186613bee565b9050613c8b606083018561317a565b613c986080830184612eea565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613cd982612ee1565b9150613ce483612ee1565b925082613cf457613cf3613ca2565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d33601b83612f1c565b9150613d3e82613cff565b602082019050919050565b5f6020820190508181035f830152613d6081613d27565b9050919050565b5f613d7182612ee1565b9150613d7c83612ee1565b9250828202613d8a81612ee1565b91508282048414831517613da157613da06138bd565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e02602183612f1c565b9150613e0d82613da8565b604082019050919050565b5f6020820190508181035f830152613e2f81613df6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206e82f485057fcfc8e3f29fde79c58d29782a84eff5e36ab336cef3ed5a308a7064736f6c634300081a0033
Deployed Bytecode Sourcemap
4306:14337:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13655:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5961:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7064:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7989:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5730:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7341:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8190:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13058:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6153:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7250:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5778:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13832:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18025:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13412:235;;;;;;;;;;;;;:::i;:::-;;7444:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1793:148;;;;;;;;;;;;;:::i;:::-;;18165:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6041:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5405:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1579:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7155:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17834:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6215:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17491:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7590:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5367:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13168:236;;;;;;;;;;;;;:::i;:::-;;18404:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7797:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18281:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1949:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13655:169;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13731:9:::1;13726:91;13750:5;:12;13746:1;:16;13726:91;;;13801:4;13784;:14;13789:5;13795:1;13789:8;;;;;;;;:::i;:::-;;;;;;;;13784:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13764:3;;;;;;;13726:91;;;;13655:169:::0;:::o;5961:31::-;;;;:::o;7064:83::-;7101:13;7134:5;;;;;;;;;;;;;;;;;7127:12;;7064:83;:::o;7989:193::-;8091:4;8113:39;8122:12;:10;:12::i;:::-;8136:7;8145:6;8113:8;:39::i;:::-;8170:4;8163:11;;7989:193;;;;:::o;5730:41::-;;;;;;;;;;;;;:::o;7341:95::-;7394:7;4865:20;7414:14;;7341:95;:::o;8190:446::-;8322:4;8339:36;8349:6;8357:9;8368:6;8339:9;:36::i;:::-;8386:220;8409:6;8430:12;:10;:12::i;:::-;8457:138;8513:6;8457:138;;;;;;;;;;;;;;;;;:11;:19;8469:6;8457:19;;;;;;;;;;;;;;;:33;8477:12;:10;:12::i;:::-;8457:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8386:8;:220::i;:::-;8624:4;8617:11;;8190:446;;;;;:::o;13058:102::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13140:12:::1;13126:11;;:26;;;;;;;;;;;;;;;;;;13058:102:::0;:::o;6153:55::-;;;;:::o;7250:83::-;7291:5;4539:1;7309:16;;7250:83;:::o;5778:28::-;;;;;;;;;;;;;:::o;13832:92::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13911:5:::1;13896:4;:12;13901:6;13896:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13832:92:::0;:::o;18025:101::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18106:12:::1;18092:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;18025:101:::0;:::o;13412:235::-;13478:19;;;;;;;;;;;13462:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13517:17;;;;;;;;;;;13501:33;;:12;:10;:12::i;:::-;:33;;;13462:72;13454:81;;;;;;13546:26;13575:21;13546:50;;13607:32;13620:18;13607:12;:32::i;:::-;13443:204;13412:235::o;7444:138::-;7510:7;7537:37;7557:7;:16;7565:7;7557:16;;;;;;;;;;;;;;;;7537:19;:37::i;:::-;7530:44;;7444:138;;;:::o;1793:148::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1900:1:::1;1863:40;;1884:6;::::0;::::1;;;;;;;;1863:40;;;;;;;;;;;;1931:1;1914:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1793:148::o:0;18165:108::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18254:11:::1;18239:12;:26;;;;18165:108:::0;:::o;6041:48::-;;;;:::o;5405:43::-;;;;;;;;;;;;;;;;;:::o;1579:79::-;1617:7;1644:6;;;;;;;;;;;1637:13;;1579:79;:::o;6096:50::-;;;;:::o;7155:87::-;7194:13;7227:7;;;;;;;;;;;;;;;;;7220:14;;7155:87;:::o;17834:139::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17947:18:::1;17925:19;:40;;;;17834:139:::0;:::o;6215:52::-;;;;:::o;17491:291::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17642:13:::1;17625:14;:30;;;;17684:14;17666:15;:32;;;;17724:11;17709:12;:26;;;;17762:12;17746:13;:28;;;;17491:291:::0;;;;:::o;7590:199::-;7695:4;7717:42;7727:12;:10;:12::i;:::-;7741:9;7752:6;7717:9;:42::i;:::-;7777:4;7770:11;;7590:199;;;;:::o;5367:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13168:236::-;13234:19;;;;;;;;;;;13218:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13273:17;;;;;;;;;;;13257:33;;:12;:10;:12::i;:::-;:33;;;13218:72;13210:81;;;;;;13302:23;13328:24;13346:4;13328:9;:24::i;:::-;13302:50;;13363:33;13380:15;13363:16;:33::i;:::-;13199:205;13168:236::o;18404:234::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18521:9:::1;18517:114;18540:8;;:15;;18536:1;:19;18517:114;;;18611:8;18577:18;:31;18596:8;;18605:1;18596:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18577:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18557:3;;;;;;;18517:114;;;;18404:234:::0;;;:::o;7797:184::-;7914:7;7946:11;:18;7958:5;7946:18;;;;;;;;;;;;;;;:27;7965:7;7946:27;;;;;;;;;;;;;;;;7939:34;;7797:184;;;;:::o;18281:115::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18375:13:::1;18358:14;:30;;;;18281:115:::0;:::o;1949:244::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2058:1:::1;2038:22;;:8;:22;;::::0;2030:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2148:8;2119:38;;2140:6;::::0;::::1;;;;;;;;2119:38;;;;;;;;;;;;2177:8;2168:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1949:244:::0;:::o;338:98::-;391:7;418:10;411:17;;338:98;:::o;9327:369::-;9471:1;9454:19;;:5;:19;;;9446:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9552:1;9533:21;;:7;:21;;;9525:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9634:6;9604:11;:18;9616:5;9604:18;;;;;;;;;;;;;;;:27;9623:7;9604:27;;;;;;;;;;;;;;;:36;;;;9672:7;9656:32;;9665:5;9656:32;;;9681:6;9656:32;;;;;;:::i;:::-;;;;;;;;9327:369;;;:::o;9704:2640::-;9842:1;9826:18;;:4;:18;;;9818:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9919:1;9905:16;;:2;:16;;;9897:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9989:1;9980:6;:10;9972:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10061:7;:5;:7::i;:::-;10053:15;;:4;:15;;;;:32;;;;;10078:7;:5;:7::i;:::-;10072:13;;:2;:13;;;;10053:32;10049:1569;;;10142:11;;;;;;;;;;;10137:144;;10190:7;:5;:7::i;:::-;10182:15;;:4;:15;;;10174:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10137:144;10315:12;;10305:6;:22;;10297:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10384:4;:10;10389:4;10384:10;;;;;;;;;;;;;;;;;;;;;;;;;10383:11;:24;;;;;10399:4;:8;10404:2;10399:8;;;;;;;;;;;;;;;;;;;;;;;;;10398:9;10383:24;10375:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10473:13;;;;;;;;;;;10467:19;;:2;:19;;;10464:146;;10540:14;;10531:6;10515:13;10525:2;10515:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10507:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10464:146;10626:28;10657:24;10675:4;10657:9;:24::i;:::-;10626:55;;10696:12;10735:19;;10711:20;:43;;10696:58;;10798:16;;10774:20;:40;10771:157;;10858:54;10862:6;10869:42;10873:20;10894:16;;10869:3;:42::i;:::-;10858:3;:54::i;:::-;10835:77;;10771:157;10948:7;:18;;;;;10960:6;;;;;;;;;;;10959:7;10948:18;:43;;;;;10978:13;;;;;;;;;;;10970:21;;:4;:21;;;;10948:43;:58;;;;;10995:11;;;;;;;;;;10948:58;:87;;;;;11011:18;:24;11030:4;11011:24;;;;;;;;;;;;;;;;;;;;;;;;;11010:25;10948:87;:114;;;;;11040:18;:22;11059:2;11040:22;;;;;;;;;;;;;;;;;;;;;;;;;11039:23;10948:114;10944:663;;;11102:13;;11087:12;:28;11083:90;;;11152:1;11140:9;:13;;;;11083:90;11229:12;;11217:9;;:24;11209:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11281:38;11298:20;11281:16;:38::i;:::-;11338:26;11367:21;11338:50;;11432:1;11411:18;:22;11407:106;;;11458:35;11471:21;11458:12;:35::i;:::-;11407:106;11533:9;;:11;;;;;;;;;:::i;:::-;;;;;;11579:12;11563:13;:28;;;;11064:543;10944:663;10087:1531;;10049:1569;11630:12;11645:4;11630:19;;11694:18;:24;11713:4;11694:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11722:18;:22;11741:2;11722:22;;;;;;;;;;;;;;;;;;;;;;;;;11694:50;11693:102;;;;11758:13;;;;;;;;;;;11750:21;;:4;:21;;;;:44;;;;;11781:13;;;;;;;;;;;11775:19;;:2;:19;;;;11750:44;11693:102;11689:594;;;11822:5;11812:15;;11689:594;;;11905:13;;;;;;;;;;;11897:21;;:4;:21;;;:55;;;;;11936:15;;;;;;;;;;;11922:30;;:2;:30;;;;11897:55;11894:162;;;11985:14;;11973:9;:26;;;;12028:12;;12018:7;:22;;;;11894:162;12115:13;;;;;;;;;;;12109:19;;:2;:19;;;:55;;;;;12148:15;;;;;;;;;;;12132:32;;:4;:32;;;;12109:55;12105:165;;;12197:15;;12185:9;:27;;;;12241:13;;12231:7;:23;;;;12105:165;11689:594;12295:41;12310:4;12316:2;12320:6;12328:7;12295:14;:41::i;:::-;9807:2537;9704:2640;;;:::o;2557:224::-;2677:7;2710:1;2705;:6;;2713:12;2697:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2737:9;2753:1;2749;:5;;;;:::i;:::-;2737:17;;2772:1;2765:8;;;2557:224;;;;;:::o;12951:99::-;13008:17;;;;;;;;;;;:26;;:34;13035:6;13008:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12951:99;:::o;8644:323::-;8739:7;8797;;8786;:18;;8764:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8885:19;8907:10;:8;:10::i;:::-;8885:32;;8935:24;8947:11;8935:7;:11;;:24;;;;:::i;:::-;8928:31;;;8644:323;;;:::o;12460:483::-;6370:4;6361:6;;:13;;;;;;;;;;;;;;;;;;12538:21:::1;12576:1;12562:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12538:40;;12607:4;12589;12594:1;12589:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12633:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12623:4;12628:1;12623:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12666:62;12683:4;12698:15;;;;;;;;;;;12716:11;12666:8;:62::i;:::-;12739:15;;;;;;;;;;;:66;;;12820:11;12846:1;12862:4;12889;12909:15;12739:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12527:416;6406:5:::0;6397:6;;:14;;;;;;;;;;;;;;;;;;12460:483;:::o;12354:98::-;12411:7;12438:1;12436;:3;12435:9;;12443:1;12435:9;;;12441:1;12435:9;12428:16;;12354:98;;;;:::o;13932:282::-;14088:7;14083:28;;14097:14;:12;:14::i;:::-;14083:28;14122:44;14140:6;14148:9;14159:6;14122:17;:44::i;:::-;14182:7;14177:29;;14191:15;:13;:15::i;:::-;14177:29;13932:282;;;;:::o;17054:164::-;17096:7;17117:15;17134;17153:19;:17;:19::i;:::-;17116:56;;;;17190:20;17202:7;17190;:11;;:20;;;;:::i;:::-;17183:27;;;;17054:164;:::o;3043:132::-;3101:7;3128:39;3132:1;3135;3128:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3121:46;;3043:132;;;;:::o;8975:219::-;9035:1;9022:9;;:14;:30;;;;;9051:1;9040:7;;:12;9022:30;9054:7;9018:43;9093:9;;9073:17;:29;;;;9131:7;;9113:15;:25;;;;9163:1;9151:9;:13;;;;9185:1;9175:7;:11;;;;8975:219;:::o;14222:771::-;14369:15;14399:23;14437:12;14464:23;14502:12;14529:13;14556:19;14567:7;14556:10;:19::i;:::-;14354:221;;;;;;;;;;;;14604:28;14624:7;14604;:15;14612:6;14604:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14586:7;:15;14594:6;14586:15;;;;;;;;;;;;;;;:46;;;;14664:39;14687:15;14664:7;:18;14672:9;14664:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14643:7;:18;14651:9;14643:18;;;;;;;;;;;;;;;:60;;;;14714:16;14724:5;14714:9;:16::i;:::-;14741:23;14753:4;14759;14741:11;:23::i;:::-;14791:13;;;;;;;;;;;14781:23;;:6;:23;;;:44;;;;14818:7;:5;:7::i;:::-;14808:17;;:6;:17;;;14781:44;14777:209;;;14865:9;14847:45;;14856:7;;;;;;;;;;;14847:45;;;14876:15;14847:45;;;;;;:::i;:::-;;;;;;;;14777:209;;;14947:9;14930:44;;14939:6;14930:44;;;14958:15;14930:44;;;;;;:::i;:::-;;;;;;;;14777:209;14343:650;;;;;;14222:771;;;:::o;9202:117::-;9258:17;;9246:9;:29;;;;9296:15;;9286:7;:25;;;;9202:117::o;17226:257::-;17277:7;17286;17306:15;17324:7;;17306:25;;17342:15;4865:20;17342:25;;17392:20;4865;17392:7;;:11;;:20;;;;:::i;:::-;17382:7;:30;17378:61;;;17422:7;;4865:20;17414:25;;;;;;;;17378:61;17458:7;17467;17450:25;;;;;;17226:257;;;:::o;3183:223::-;3303:7;3335:1;3331;:5;3338:12;3323:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3362:9;3378:1;3374;:5;;;;:::i;:::-;3362:17;;3397:1;3390:8;;;3183:223;;;;;:::o;15412:615::-;15512:7;15534;15556;15578;15600;15622;15658:23;15683:12;15697:13;15727:40;15739:7;15748:9;;15759:7;;15727:11;:40::i;:::-;15657:110;;;;;;15778:19;15800:10;:8;:10::i;:::-;15778:32;;15822:15;15839:23;15864:12;15893:46;15905:7;15914:4;15920:5;15927:11;15893;:46::i;:::-;15821:118;;;;;;15958:7;15967:15;15984:4;15990:15;16007:4;16013:5;15950:69;;;;;;;;;;;;;;;;;;;15412:615;;;;;;;:::o;2413:136::-;2471:7;2498:43;2502:1;2505;2498:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2491:50;;2413:136;;;;:::o;2226:179::-;2284:7;2304:9;2320:1;2316;:5;;;;:::i;:::-;2304:17;;2345:1;2340;:6;;2332:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2396:1;2389:8;;;2226:179;;;;:::o;15001:211::-;15054:19;15076:10;:8;:10::i;:::-;15054:32;;15097:13;15113:22;15123:11;15113:5;:9;;:22;;;;:::i;:::-;15097:38;;15171:33;15198:5;15171:7;:22;15187:4;15171:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15146:7;:22;15162:4;15146:22;;;;;;;;;;;;;;;:58;;;;15043:169;;15001:211;:::o;15220:147::-;15298:17;15310:4;15298:7;;:11;;:17;;;;:::i;:::-;15288:7;:27;;;;15339:20;15354:4;15339:10;;:14;;:20;;;;:::i;:::-;15326:10;:33;;;;15220:147;;:::o;16035:469::-;16204:7;16226;16248;16283:12;16298:30;16324:3;16298:21;16310:8;16298:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16283:45;;16339:13;16355:28;16379:3;16355:19;16367:6;16355:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16339:44;;16394:23;16420:28;16442:5;16420:17;16432:4;16420:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16394:54;;16467:15;16484:4;16490:5;16459:37;;;;;;;;;16035:469;;;;;;;:::o;16512:534::-;16706:7;16728;16750;16785:15;16803:24;16815:11;16803:7;:11;;:24;;;;:::i;:::-;16785:42;;16838:12;16853:21;16862:11;16853:4;:8;;:21;;;;:::i;:::-;16838:36;;16885:13;16901:22;16911:11;16901:5;:9;;:22;;;;:::i;:::-;16885:38;;16934:23;16960:28;16982:5;16960:17;16972:4;16960:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16934:54;;17007:7;17016:15;17033:4;16999:39;;;;;;;;;;16512:534;;;;;;;;:::o;2789:246::-;2847:7;2876:1;2871;:6;2867:47;;2901:1;2894:8;;;;2867:47;2924:9;2940:1;2936;:5;;;;:::i;:::-;2924:17;;2969:1;2964;2960;:5;;;;:::i;:::-;:10;2952:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3026:1;3019:8;;;2789: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:77::-;3828:7;3857:5;3846:16;;3791:77;;;:::o;3874:118::-;3961:24;3979:5;3961:24;:::i;:::-;3956:3;3949:37;3874:118;;:::o;3998:222::-;4091:4;4129:2;4118:9;4114:18;4106:26;;4142:71;4210:1;4199:9;4195:17;4186:6;4142:71;:::i;:::-;3998:222;;;;:::o;4226:99::-;4278:6;4312:5;4306:12;4296:22;;4226:99;;;:::o;4331:169::-;4415:11;4449:6;4444:3;4437:19;4489:4;4484:3;4480:14;4465:29;;4331:169;;;;:::o;4506:139::-;4595:6;4590:3;4585;4579:23;4636:1;4627:6;4622:3;4618:16;4611:27;4506:139;;;:::o;4651:377::-;4739:3;4767:39;4800:5;4767:39;:::i;:::-;4822:71;4886:6;4881:3;4822:71;:::i;:::-;4815:78;;4902:65;4960:6;4955:3;4948:4;4941:5;4937:16;4902:65;:::i;:::-;4992:29;5014:6;4992:29;:::i;:::-;4987:3;4983:39;4976:46;;4743:285;4651:377;;;;:::o;5034:313::-;5147:4;5185:2;5174:9;5170:18;5162:26;;5234:9;5228:4;5224:20;5220:1;5209:9;5205:17;5198:47;5262:78;5335:4;5326:6;5262:78;:::i;:::-;5254:86;;5034:313;;;;:::o;5353:122::-;5426:24;5444:5;5426:24;:::i;:::-;5419:5;5416:35;5406:63;;5465:1;5462;5455:12;5406:63;5353:122;:::o;5481:139::-;5527:5;5565:6;5552:20;5543:29;;5581:33;5608:5;5581:33;:::i;:::-;5481:139;;;;:::o;5626:474::-;5694:6;5702;5751:2;5739:9;5730:7;5726:23;5722:32;5719:119;;;5757:79;;:::i;:::-;5719:119;5877:1;5902:53;5947:7;5938:6;5927:9;5923:22;5902:53;:::i;:::-;5892:63;;5848:117;6004:2;6030:53;6075:7;6066:6;6055:9;6051:22;6030:53;:::i;:::-;6020:63;;5975:118;5626:474;;;;;:::o;6106:90::-;6140:7;6183:5;6176:13;6169:21;6158:32;;6106:90;;;:::o;6202:109::-;6283:21;6298:5;6283:21;:::i;:::-;6278:3;6271:34;6202:109;;:::o;6317:210::-;6404:4;6442:2;6431:9;6427:18;6419:26;;6455:65;6517:1;6506:9;6502:17;6493:6;6455:65;:::i;:::-;6317:210;;;;:::o;6533:60::-;6561:3;6582:5;6575:12;;6533:60;;;:::o;6599:142::-;6649:9;6682:53;6700:34;6709:24;6727:5;6709:24;:::i;:::-;6700:34;:::i;:::-;6682:53;:::i;:::-;6669:66;;6599:142;;;:::o;6747:126::-;6797:9;6830:37;6861:5;6830:37;:::i;:::-;6817:50;;6747:126;;;:::o;6879:152::-;6955:9;6988:37;7019:5;6988:37;:::i;:::-;6975:50;;6879:152;;;:::o;7037:183::-;7150:63;7207:5;7150:63;:::i;:::-;7145:3;7138:76;7037:183;;:::o;7226:274::-;7345:4;7383:2;7372:9;7368:18;7360:26;;7396:97;7490:1;7479:9;7475:17;7466:6;7396:97;:::i;:::-;7226:274;;;;:::o;7506:619::-;7583:6;7591;7599;7648:2;7636:9;7627:7;7623:23;7619:32;7616:119;;;7654:79;;:::i;:::-;7616:119;7774:1;7799:53;7844:7;7835:6;7824:9;7820:22;7799:53;:::i;:::-;7789:63;;7745:117;7901:2;7927:53;7972:7;7963:6;7952:9;7948:22;7927:53;:::i;:::-;7917:63;;7872:118;8029:2;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8000:118;7506:619;;;;;:::o;8131:116::-;8201:21;8216:5;8201:21;:::i;:::-;8194:5;8191:32;8181:60;;8237:1;8234;8227:12;8181:60;8131:116;:::o;8253:133::-;8296:5;8334:6;8321:20;8312:29;;8350:30;8374:5;8350:30;:::i;:::-;8253:133;;;;:::o;8392:323::-;8448:6;8497:2;8485:9;8476:7;8472:23;8468:32;8465:119;;;8503:79;;:::i;:::-;8465:119;8623:1;8648:50;8690:7;8681:6;8670:9;8666:22;8648:50;:::i;:::-;8638:60;;8594:114;8392:323;;;;:::o;8721:86::-;8756:7;8796:4;8789:5;8785:16;8774:27;;8721:86;;;:::o;8813:112::-;8896:22;8912:5;8896:22;:::i;:::-;8891:3;8884:35;8813:112;;:::o;8931:214::-;9020:4;9058:2;9047:9;9043:18;9035:26;;9071:67;9135:1;9124:9;9120:17;9111:6;9071:67;:::i;:::-;8931:214;;;;:::o;9151:118::-;9238:24;9256:5;9238:24;:::i;:::-;9233:3;9226:37;9151:118;;:::o;9275:222::-;9368:4;9406:2;9395:9;9391:18;9383:26;;9419:71;9487:1;9476:9;9472:17;9463:6;9419:71;:::i;:::-;9275:222;;;;:::o;9503:329::-;9562:6;9611:2;9599:9;9590:7;9586:23;9582:32;9579:119;;;9617:79;;:::i;:::-;9579:119;9737:1;9762:53;9807:7;9798:6;9787:9;9783:22;9762:53;:::i;:::-;9752:63;;9708:117;9503:329;;;;:::o;9838:::-;9897:6;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:53;10142:7;10133:6;10122:9;10118:22;10097:53;:::i;:::-;10087:63;;10043:117;9838:329;;;;:::o;10173:765::-;10259:6;10267;10275;10283;10332:3;10320:9;10311:7;10307:23;10303:33;10300:120;;;10339:79;;:::i;:::-;10300:120;10459:1;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10430:117;10586:2;10612:53;10657:7;10648:6;10637:9;10633:22;10612:53;:::i;:::-;10602:63;;10557:118;10714:2;10740:53;10785:7;10776:6;10765:9;10761:22;10740:53;:::i;:::-;10730:63;;10685:118;10842:2;10868:53;10913:7;10904:6;10893:9;10889:22;10868:53;:::i;:::-;10858:63;;10813:118;10173:765;;;;;;;:::o;10944:117::-;11053:1;11050;11043:12;11084:568;11157:8;11167:6;11217:3;11210:4;11202:6;11198:17;11194:27;11184:122;;11225:79;;:::i;:::-;11184:122;11338:6;11325:20;11315:30;;11368:18;11360:6;11357:30;11354:117;;;11390:79;;:::i;:::-;11354:117;11504:4;11496:6;11492:17;11480:29;;11558:3;11550:4;11542:6;11538:17;11528:8;11524:32;11521:41;11518:128;;;11565:79;;:::i;:::-;11518:128;11084:568;;;;;:::o;11658:698::-;11750:6;11758;11766;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11969:1;11958:9;11954:17;11941:31;11999:18;11991:6;11988:30;11985:117;;;12021:79;;:::i;:::-;11985:117;12134:80;12206:7;12197:6;12186:9;12182:22;12134:80;:::i;:::-;12116:98;;;;11912:312;12263:2;12289:50;12331:7;12322:6;12311:9;12307:22;12289:50;:::i;:::-;12279:60;;12234:115;11658:698;;;;;:::o;12362:474::-;12430:6;12438;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:53;12683:7;12674:6;12663:9;12659:22;12638:53;:::i;:::-;12628:63;;12584:117;12740:2;12766:53;12811:7;12802:6;12791:9;12787:22;12766:53;:::i;:::-;12756:63;;12711:118;12362:474;;;;;:::o;12842:182::-;12982:34;12978:1;12970:6;12966:14;12959:58;12842:182;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13030:366;;;:::o;13402:419::-;13568:4;13606:2;13595:9;13591:18;13583:26;;13655:9;13649:4;13645:20;13641:1;13630:9;13626:17;13619:47;13683:131;13809:4;13683:131;:::i;:::-;13675:139;;13402:419;;;:::o;13827:180::-;13875:77;13872:1;13865:88;13972:4;13969:1;13962:15;13996:4;13993:1;13986:15;14013:225;14153:34;14149:1;14141:6;14137:14;14130:58;14222:8;14217:2;14209:6;14205:15;14198:33;14013:225;:::o;14244:366::-;14386:3;14407:67;14471:2;14466:3;14407:67;:::i;:::-;14400:74;;14483:93;14572:3;14483:93;:::i;:::-;14601:2;14596:3;14592:12;14585:19;;14244:366;;;:::o;14616:419::-;14782:4;14820:2;14809:9;14805:18;14797:26;;14869:9;14863:4;14859:20;14855:1;14844:9;14840:17;14833:47;14897:131;15023:4;14897:131;:::i;:::-;14889:139;;14616:419;;;:::o;15041:223::-;15181:34;15177:1;15169:6;15165:14;15158:58;15250:6;15245:2;15237:6;15233:15;15226:31;15041:223;:::o;15270:366::-;15412:3;15433:67;15497:2;15492:3;15433:67;:::i;:::-;15426:74;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15270:366;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:221::-;16207:34;16203:1;16195:6;16191:14;16184:58;16276:4;16271:2;16263:6;16259:15;16252:29;16067:221;:::o;16294:366::-;16436:3;16457:67;16521:2;16516:3;16457:67;:::i;:::-;16450:74;;16533:93;16622:3;16533:93;:::i;:::-;16651:2;16646:3;16642:12;16635:19;;16294:366;;;:::o;16666:419::-;16832:4;16870:2;16859:9;16855:18;16847:26;;16919:9;16913:4;16909:20;16905:1;16894:9;16890:17;16883:47;16947:131;17073:4;16947:131;:::i;:::-;16939:139;;16666:419;;;:::o;17091:224::-;17231:34;17227:1;17219:6;17215:14;17208:58;17300:7;17295:2;17287:6;17283:15;17276:32;17091:224;:::o;17321:366::-;17463:3;17484:67;17548:2;17543:3;17484:67;:::i;:::-;17477:74;;17560:93;17649:3;17560:93;:::i;:::-;17678:2;17673:3;17669:12;17662:19;;17321:366;;;:::o;17693:419::-;17859:4;17897:2;17886:9;17882:18;17874:26;;17946:9;17940:4;17936:20;17932:1;17921:9;17917:17;17910:47;17974:131;18100:4;17974:131;:::i;:::-;17966:139;;17693:419;;;:::o;18118:222::-;18258:34;18254:1;18246:6;18242:14;18235:58;18327:5;18322:2;18314:6;18310:15;18303:30;18118:222;:::o;18346:366::-;18488:3;18509:67;18573:2;18568:3;18509:67;:::i;:::-;18502:74;;18585:93;18674:3;18585:93;:::i;:::-;18703:2;18698:3;18694:12;18687:19;;18346:366;;;:::o;18718:419::-;18884:4;18922:2;18911:9;18907:18;18899:26;;18971:9;18965:4;18961:20;18957:1;18946:9;18942:17;18935:47;18999:131;19125:4;18999:131;:::i;:::-;18991:139;;18718:419;;;:::o;19143:228::-;19283:34;19279:1;19271:6;19267:14;19260:58;19352:11;19347:2;19339:6;19335:15;19328:36;19143:228;:::o;19377:366::-;19519:3;19540:67;19604:2;19599:3;19540:67;:::i;:::-;19533:74;;19616:93;19705:3;19616:93;:::i;:::-;19734:2;19729:3;19725:12;19718:19;;19377:366;;;:::o;19749:419::-;19915:4;19953:2;19942:9;19938:18;19930:26;;20002:9;19996:4;19992:20;19988:1;19977:9;19973:17;19966:47;20030:131;20156:4;20030:131;:::i;:::-;20022:139;;19749:419;;;:::o;20174:250::-;20314:34;20310:1;20302:6;20298:14;20291:58;20383:33;20378:2;20370:6;20366:15;20359:58;20174:250;:::o;20430:366::-;20572:3;20593:67;20657:2;20652:3;20593:67;:::i;:::-;20586:74;;20669:93;20758:3;20669:93;:::i;:::-;20787:2;20782:3;20778:12;20771:19;;20430:366;;;:::o;20802:419::-;20968:4;21006:2;20995:9;20991:18;20983:26;;21055:9;21049:4;21045:20;21041:1;21030:9;21026:17;21019:47;21083:131;21209:4;21083:131;:::i;:::-;21075:139;;20802:419;;;:::o;21227:178::-;21367:30;21363:1;21355:6;21351:14;21344:54;21227:178;:::o;21411:366::-;21553:3;21574:67;21638:2;21633:3;21574:67;:::i;:::-;21567:74;;21650:93;21739:3;21650:93;:::i;:::-;21768:2;21763:3;21759:12;21752:19;;21411:366;;;:::o;21783:419::-;21949:4;21987:2;21976:9;21972:18;21964:26;;22036:9;22030:4;22026:20;22022:1;22011:9;22007:17;22000:47;22064:131;22190:4;22064:131;:::i;:::-;22056:139;;21783:419;;;:::o;22208:222::-;22348:34;22344:1;22336:6;22332:14;22325:58;22417:5;22412:2;22404:6;22400:15;22393:30;22208:222;:::o;22436:366::-;22578:3;22599:67;22663:2;22658:3;22599:67;:::i;:::-;22592:74;;22675:93;22764:3;22675:93;:::i;:::-;22793:2;22788:3;22784:12;22777:19;;22436:366;;;:::o;22808:419::-;22974:4;23012:2;23001:9;22997:18;22989:26;;23061:9;23055:4;23051:20;23047:1;23036:9;23032:17;23025:47;23089:131;23215:4;23089:131;:::i;:::-;23081:139;;22808:419;;;:::o;23233:180::-;23281:77;23278:1;23271:88;23378:4;23375:1;23368:15;23402:4;23399:1;23392:15;23419:191;23459:3;23478:20;23496:1;23478:20;:::i;:::-;23473:25;;23512:20;23530:1;23512:20;:::i;:::-;23507:25;;23555:1;23552;23548:9;23541:16;;23576:3;23573:1;23570:10;23567:36;;;23583:18;;:::i;:::-;23567:36;23419:191;;;;:::o;23616:222::-;23756:34;23752:1;23744:6;23740:14;23733:58;23825:5;23820:2;23812:6;23808:15;23801:30;23616:222;:::o;23844:366::-;23986:3;24007:67;24071:2;24066:3;24007:67;:::i;:::-;24000:74;;24083:93;24172:3;24083:93;:::i;:::-;24201:2;24196:3;24192:12;24185:19;;23844:366;;;:::o;24216:419::-;24382:4;24420:2;24409:9;24405:18;24397:26;;24469:9;24463:4;24459:20;24455:1;24444:9;24440:17;24433:47;24497:131;24623:4;24497:131;:::i;:::-;24489:139;;24216:419;;;:::o;24641:166::-;24781:18;24777:1;24769:6;24765:14;24758:42;24641:166;:::o;24813:366::-;24955:3;24976:67;25040:2;25035:3;24976:67;:::i;:::-;24969:74;;25052:93;25141:3;25052:93;:::i;:::-;25170:2;25165:3;25161:12;25154:19;;24813:366;;;:::o;25185:419::-;25351:4;25389:2;25378:9;25374:18;25366:26;;25438:9;25432:4;25428:20;25424:1;25413:9;25409:17;25402:47;25466:131;25592:4;25466:131;:::i;:::-;25458:139;;25185:419;;;:::o;25610:233::-;25649:3;25672:24;25690:5;25672:24;:::i;:::-;25663:33;;25718:66;25711:5;25708:77;25705:103;;25788:18;;:::i;:::-;25705:103;25835:1;25828:5;25824:13;25817:20;;25610:233;;;:::o;25849:194::-;25889:4;25909:20;25927:1;25909:20;:::i;:::-;25904:25;;25943:20;25961:1;25943:20;:::i;:::-;25938:25;;25987:1;25984;25980:9;25972:17;;26011:1;26005:4;26002:11;25999:37;;;26016:18;;:::i;:::-;25999:37;25849:194;;;;:::o;26049:229::-;26189:34;26185:1;26177:6;26173:14;26166:58;26258:12;26253:2;26245:6;26241:15;26234:37;26049:229;:::o;26284:366::-;26426:3;26447:67;26511:2;26506:3;26447:67;:::i;:::-;26440:74;;26523:93;26612:3;26523:93;:::i;:::-;26641:2;26636:3;26632:12;26625:19;;26284:366;;;:::o;26656:419::-;26822:4;26860:2;26849:9;26845:18;26837:26;;26909:9;26903:4;26899:20;26895:1;26884:9;26880:17;26873:47;26937:131;27063:4;26937:131;:::i;:::-;26929:139;;26656:419;;;:::o;27081:143::-;27138:5;27169:6;27163:13;27154:22;;27185:33;27212:5;27185:33;:::i;:::-;27081:143;;;;:::o;27230:351::-;27300:6;27349:2;27337:9;27328:7;27324:23;27320:32;27317:119;;;27355:79;;:::i;:::-;27317:119;27475:1;27500:64;27556:7;27547:6;27536:9;27532:22;27500:64;:::i;:::-;27490:74;;27446:128;27230:351;;;;:::o;27587:85::-;27632:7;27661:5;27650:16;;27587:85;;;:::o;27678:158::-;27736:9;27769:61;27787:42;27796:32;27822:5;27796:32;:::i;:::-;27787:42;:::i;:::-;27769:61;:::i;:::-;27756:74;;27678:158;;;:::o;27842:147::-;27937:45;27976:5;27937:45;:::i;:::-;27932:3;27925:58;27842:147;;:::o;27995:114::-;28062:6;28096:5;28090:12;28080:22;;27995:114;;;:::o;28115:184::-;28214:11;28248:6;28243:3;28236:19;28288:4;28283:3;28279:14;28264:29;;28115:184;;;;:::o;28305:132::-;28372:4;28395:3;28387:11;;28425:4;28420:3;28416:14;28408:22;;28305:132;;;:::o;28443:108::-;28520:24;28538:5;28520:24;:::i;:::-;28515:3;28508:37;28443:108;;:::o;28557:179::-;28626:10;28647:46;28689:3;28681:6;28647:46;:::i;:::-;28725:4;28720:3;28716:14;28702:28;;28557:179;;;;:::o;28742:113::-;28812:4;28844;28839:3;28835:14;28827:22;;28742:113;;;:::o;28891:732::-;29010:3;29039:54;29087:5;29039:54;:::i;:::-;29109:86;29188:6;29183:3;29109:86;:::i;:::-;29102:93;;29219:56;29269:5;29219:56;:::i;:::-;29298:7;29329:1;29314:284;29339:6;29336:1;29333:13;29314:284;;;29415:6;29409:13;29442:63;29501:3;29486:13;29442:63;:::i;:::-;29435:70;;29528:60;29581:6;29528:60;:::i;:::-;29518:70;;29374:224;29361:1;29358;29354:9;29349:14;;29314:284;;;29318:14;29614:3;29607:10;;29015:608;;;28891:732;;;;:::o;29629:831::-;29892:4;29930:3;29919:9;29915:19;29907:27;;29944:71;30012:1;30001:9;29997:17;29988:6;29944:71;:::i;:::-;30025:80;30101:2;30090:9;30086:18;30077:6;30025:80;:::i;:::-;30152:9;30146:4;30142:20;30137:2;30126:9;30122:18;30115:48;30180:108;30283:4;30274:6;30180:108;:::i;:::-;30172:116;;30298:72;30366:2;30355:9;30351:18;30342:6;30298:72;:::i;:::-;30380:73;30448:3;30437:9;30433:19;30424:6;30380:73;:::i;:::-;29629:831;;;;;;;;:::o;30466:180::-;30514:77;30511:1;30504:88;30611:4;30608:1;30601:15;30635:4;30632:1;30625:15;30652:185;30692:1;30709:20;30727:1;30709:20;:::i;:::-;30704:25;;30743:20;30761:1;30743:20;:::i;:::-;30738:25;;30782:1;30772:35;;30787:18;;:::i;:::-;30772:35;30829:1;30826;30822:9;30817:14;;30652:185;;;;:::o;30843:177::-;30983:29;30979:1;30971:6;30967:14;30960:53;30843:177;:::o;31026:366::-;31168:3;31189:67;31253:2;31248:3;31189:67;:::i;:::-;31182:74;;31265:93;31354:3;31265:93;:::i;:::-;31383:2;31378:3;31374:12;31367:19;;31026:366;;;:::o;31398:419::-;31564:4;31602:2;31591:9;31587:18;31579:26;;31651:9;31645:4;31641:20;31637:1;31626:9;31622:17;31615:47;31679:131;31805:4;31679:131;:::i;:::-;31671:139;;31398:419;;;:::o;31823:410::-;31863:7;31886:20;31904:1;31886:20;:::i;:::-;31881:25;;31920:20;31938:1;31920:20;:::i;:::-;31915:25;;31975:1;31972;31968:9;31997:30;32015:11;31997:30;:::i;:::-;31986:41;;32176:1;32167:7;32163:15;32160:1;32157:22;32137:1;32130:9;32110:83;32087:139;;32206:18;;:::i;:::-;32087:139;31871:362;31823:410;;;;:::o;32239:220::-;32379:34;32375:1;32367:6;32363:14;32356:58;32448:3;32443:2;32435:6;32431:15;32424:28;32239:220;:::o;32465:366::-;32607:3;32628:67;32692:2;32687:3;32628:67;:::i;:::-;32621:74;;32704:93;32793:3;32704:93;:::i;:::-;32822:2;32817:3;32813:12;32806:19;;32465:366;;;:::o;32837:419::-;33003:4;33041:2;33030:9;33026:18;33018:26;;33090:9;33084:4;33080:20;33076:1;33065:9;33061:17;33054:47;33118:131;33244:4;33118:131;:::i;:::-;33110:139;;32837:419;;;:::o
Swarm Source
ipfs://6e82f485057fcfc8e3f29fde79c58d29782a84eff5e36ab336cef3ed5a308a70
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.