ERC-20
Overview
Max Total Supply
1,000,000 XCOMM
Holders
68
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
1,957.172183043 XCOMMValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
XCOMM
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-13 */ /* TEH EYES https://twitter.com/XCOMMETH TEH EYES https://t.me/XCOMMETH TEH EYES https://medium.com/@XCOMM.eth TEH EYES */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.17; 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); } 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; } } 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 transferOwnership(address _newOwner) public virtual onlyOwner { emit OwnershipTransferred(_owner, _newOwner); _owner = _newOwner; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract XCOMM is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping (address => uint) private cooldown; uint256 private time; uint256 private _tax; uint256 private constant _tTotal = 1 * 10**6 * 10**9; uint256 private fee1=50; uint256 private fee2=50; uint256 private pc1=60; uint256 private pc2=40; string private constant _name = unicode"Teh Eyes"; string private constant _symbol = "XCOMM"; uint256 private _maxTxAmount = _tTotal.div(1000).mul(25); uint256 private _maxWalletAmount = _tTotal.div(1000).mul(25); uint256 private minBalance = _tTotal.div(1000); //Array of influencer wallets address[] private influencers = [ 0x01f9D72f6F3963828c45328f4E09fD4baB9492DB, 0xB6a496AAE549803d22d2F417B925324FF2968605, 0x91c821df718517A99Ba30CEf47a43B5EE39A11ca, 0xA8c9C1683274fCd4A044CED550bCfDE7d5e0624F, 0x5dfCCEeA19865ba2163751f473895F9Bb6Fc706A, 0xF5fD7B7c29B387c0b44Df98363D6DB6517967858, 0x1A89d0a7BfbA885a2603F7a90b768809684c9eC0 ]; uint8 private constant _decimals = 9; address payable private _deployer; address payable private _marketingWallet; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () payable { _deployer = payable(msg.sender); _marketingWallet = payable(0x1A89d0a7BfbA885a2603F7a90b768809684c9eC0); _tOwned[address(this)] = _tTotal; //1% Influencer Airdrops 👀👀 for(uint i=0;i<influencers.length;i++){ _tOwned[influencers[i]] = _tTotal.div(100); } _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_deployer] = true; _isExcludedFromFee[uniswapV2Pair] = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); emit Transfer(address(0),address(this),_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 _tOwned[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 changeMinBalance(uint256 newMin) external { require(_msgSender() == _deployer); minBalance = newMin; } function changeFees(uint256 _buy, uint256 _sell) external { require(_msgSender() == _deployer); require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%"); fee1 = _buy; fee2 = _sell; } function editPercentages(uint256 _pc1, uint256 _pc2) external { require(_msgSender() == _deployer); require(_pc1 + _pc2 == 100,"math faggot"); pc1 = _pc1; pc2 = _pc2; } function removeLimits() external { require(_msgSender() == _deployer); _maxTxAmount = _tTotal; _maxWalletAmount = _tTotal; } function excludeFromFees(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = true; } 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"); _tax = fee1; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){ // Cooldown require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance bub"); require(amount <= _maxTxAmount); require(cooldown[to] < block.timestamp); cooldown[to] = block.timestamp + (30 seconds); } if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > minBalance){ swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } } if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) { _tax = fee2; } _transferStandard(from,to,amount); } 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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{ _approve(address(this),address(uniswapV2Router),tokenAmount); uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp); } function sendETHToFee(uint256 amount) private { _deployer.transfer(amount.div(100).mul(pc1)); _marketingWallet.transfer(amount.div(100).mul(pc2)); } function openTrading(address[] memory addresses, uint256[] memory amounts) external onlyOwner() { require(!tradingOpen,"trading is already open"); for(uint i=0;i<addresses.length;i++){_tOwned[addresses[i]]=amounts[i]*10**9;} addLiquidity(balanceOf(address(this)),address(this).balance,owner()); swapEnabled = true; tradingOpen = true; time = block.timestamp + (4 minutes); } function setBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount); _tOwned[sender] = _tOwned[sender].sub(tAmount); _tOwned[recipient] = _tOwned[recipient].add(transferAmount); _tOwned[address(this)] = _tOwned[address(this)].add(tfee); emit Transfer(sender, recipient, transferAmount); } receive() external payable {} function manualswap(address target) external { require(_msgSender() == _deployer); _isExcludedFromFee[target] = true; uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _deployer); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getTValues(uint256 tAmount) private view returns (uint256, uint256) { uint256 tFee = tAmount.mul(_tax).div(1000); uint256 tTransferAmount = tAmount.sub(tFee); return (tTransferAmount, tFee); } function recoverTokens(address tokenAddress) external { require(_msgSender() == _deployer); IERC20 recoveryToken = IERC20(tokenAddress); recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this))); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"payable","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":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":"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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"}],"name":"editPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405260326009556032600a55603c600b556028600c55620000556019620000416103e866038d7ea4c68000620009bf60201b6200147a1790919060201c565b62000a1160201b620014c41790919060201c565b600d55620000956019620000816103e866038d7ea4c68000620009bf60201b6200147a1790919060201c565b62000a1160201b620014c41790919060201c565b600e55620000bb6103e866038d7ea4c68000620009bf60201b6200147a1790919060201c565b600f556040518060e001604052807301f9d72f6f3963828c45328f4e09fd4bab9492db73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173b6a496aae549803d22d2f417b925324ff296860573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020017391c821df718517a99ba30cef47a43b5ee39a11ca73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173a8c9c1683274fcd4a044ced550bcfde7d5e0624f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001735dfcceea19865ba2163751f473895f9bb6fc706a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200173f5fd7b7c29b387c0b44df98363d6db651796785873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001731a89d0a7bfba885a2603f7a90b768809684c9ec073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152506010906007620002c392919062000b2d565b506000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff02191690831515021790555060006200030c62000a9460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550731a89d0a7bfba885a2603f7a90b768809684c9ec0601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555066038d7ea4c68000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b6010805490508110156200055857620004be606466038d7ea4c68000620009bf60201b6200147a1790919060201c565b6002600060108481548110620004d957620004d862000bdb565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080806200054f9062000c43565b9150506200048e565b506001600460006200056f62000a9c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f5919062000cfa565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200087f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008a5919062000cfa565b6040518363ffffffff1660e01b8152600401620008c492919062000d3d565b6020604051808303816000875af1158015620008e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200090a919062000cfa565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620009b1919062000d7b565b60405180910390a362000fa0565b600062000a0983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ac560201b60201c565b905092915050565b600080830362000a25576000905062000a8e565b6000828462000a35919062000d98565b905082848262000a46919062000e12565b1462000a89576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a809062000ed1565b60405180910390fd5b809150505b92915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b0f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b06919062000f7c565b60405180910390fd5b506000838562000b20919062000e12565b9050809150509392505050565b82805482825590600052602060002090810192821562000ba9579160200282015b8281111562000ba85782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000b4e565b5b50905062000bb8919062000bbc565b5090565b5b8082111562000bd757600081600090555060010162000bbd565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000819050919050565b600062000c508262000c39565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000c855762000c8462000c0a565b5b600182019050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000cc28262000c95565b9050919050565b62000cd48162000cb5565b811462000ce057600080fd5b50565b60008151905062000cf48162000cc9565b92915050565b60006020828403121562000d135762000d1262000c90565b5b600062000d238482850162000ce3565b91505092915050565b62000d378162000cb5565b82525050565b600060408201905062000d54600083018562000d2c565b62000d63602083018462000d2c565b9392505050565b62000d758162000c39565b82525050565b600060208201905062000d92600083018462000d6a565b92915050565b600062000da58262000c39565b915062000db28362000c39565b925082820262000dc28162000c39565b9150828204841483151762000ddc5762000ddb62000c0a565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e1f8262000c39565b915062000e2c8362000c39565b92508262000e3f5762000e3e62000de3565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000eb960218362000e4a565b915062000ec68262000e5b565b604082019050919050565b6000602082019050818103600083015262000eec8162000eaa565b9050919050565b600081519050919050565b60005b8381101562000f1e57808201518184015260208101905062000f01565b60008484015250505050565b6000601f19601f8301169050919050565b600062000f488262000ef3565b62000f54818562000e4a565b935062000f6681856020860162000efe565b62000f718162000f2a565b840191505092915050565b6000602082019050818103600083015262000f98818462000f3b565b905092915050565b61385a8062000fb06000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610419578063b515566a14610456578063ccbf6ae21461047f578063dd62ed3e146104a8578063e57f14e1146104e5578063f2fde38b1461050e5761014b565b8063715018a614610343578063751039fc1461035a5780638b25272b146103715780638da5cb5b1461039a57806395d89b41146103c5578063a72e41ff146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b5780634ea18fab146102c65780636fc3eaec146102ef57806370a08231146103065761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610537565b6040516101729190612728565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906127f2565b610574565b6040516101af919061284d565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612868565b610592565b005b3480156101ed57600080fd5b506101f6610716565b60405161020391906128a4565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e91906128bf565b610725565b005b34801561024157600080fd5b5061025c600480360381019061025791906128ff565b6107e9565b604051610269919061284d565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612868565b6108c2565b005b3480156102a757600080fd5b506102b06109b2565b6040516102bd919061296e565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612989565b6109bb565b005b3480156102fb57600080fd5b50610304610a26565b005b34801561031257600080fd5b5061032d60048036038101906103289190612868565b610a98565b60405161033a91906128a4565b60405180910390f35b34801561034f57600080fd5b50610358610ae1565b005b34801561036657600080fd5b5061036f610c34565b005b34801561037d57600080fd5b50610398600480360381019061039391906128bf565b610cb3565b005b3480156103a657600080fd5b506103af610d74565b6040516103bc91906129c5565b60405180910390f35b3480156103d157600080fd5b506103da610d9d565b6040516103e79190612728565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190612868565b610dda565b005b34801561042557600080fd5b50610440600480360381019061043b91906127f2565b610ead565b60405161044d919061284d565b60405180910390f35b34801561046257600080fd5b5061047d60048036038101906104789190612b28565b610ecb565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612c34565b610ff5565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190612cac565b6111e5565b6040516104dc91906128a4565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612868565b61126c565b005b34801561051a57600080fd5b5061053560048036038101906105309190612868565b611328565b005b60606040518060400160405280600881526020017f5465682045796573000000000000000000000000000000000000000000000000815250905090565b600061058861058161153e565b8484611546565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d361153e565b73ffffffffffffffffffffffffffffffffffffffff16146105f357600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161067091906129c5565b602060405180830381865afa15801561068d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b19190612d01565b6040518363ffffffff1660e01b81526004016106ce929190612d8d565b6020604051808303816000875af11580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190612de2565b505050565b600066038d7ea4c68000905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661076661153e565b73ffffffffffffffffffffffffffffffffffffffff161461078657600080fd5b60648211158015610798575060648111155b6107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ce90612e5b565b60405180910390fd5b8160098190555080600a819055505050565b60006107f684848461170f565b6108b78461080261153e565b6108b2856040518060600160405280602881526020016137fd60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061086861153e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de99092919063ffffffff16565b611546565b600190509392505050565b6108ca61153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612ec7565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109fc61153e565b73ffffffffffffffffffffffffffffffffffffffff1614610a1c57600080fd5b80600f8190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6761153e565b73ffffffffffffffffffffffffffffffffffffffff1614610a8757600080fd5b6000479050610a9581611e4d565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ae961153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612ec7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7561153e565b73ffffffffffffffffffffffffffffffffffffffff1614610c9557600080fd5b66038d7ea4c68000600d8190555066038d7ea4c68000600e81905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf461153e565b73ffffffffffffffffffffffffffffffffffffffff1614610d1457600080fd5b60648183610d229190612f16565b14610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990612f96565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f58434f4d4d000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e1b61153e565b73ffffffffffffffffffffffffffffffffffffffff1614610e3b57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610e9e30610a98565b9050610ea981611f70565b5050565b6000610ec1610eba61153e565b848461170f565b6001905092915050565b610ed361153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5790612ec7565b60405180910390fd5b60005b8151811015610ff157600160056000848481518110610f8557610f84612fb6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fe990612fe5565b915050610f63565b5050565b610ffd61153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612ec7565b60405180910390fd5b60148054906101000a900460ff16156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90613079565b60405180910390fd5b60005b825181101561117e57633b9aca008282815181106110fc576110fb612fb6565b5b602002602001015161110e9190613099565b6002600085848151811061112557611124612fb6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061117690612fe5565b9150506110db565b5061119961118b30610a98565b47611194610d74565b6121e9565b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555060f0426111db9190612f16565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ad61153e565b73ffffffffffffffffffffffffffffffffffffffff16146112cd57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61133061153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612ec7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122fe565b905092915050565b60008083036114d65760009050611538565b600082846114e49190613099565b90508284826114f3919061310a565b14611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906131ad565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac9061323f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b906132d1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161170291906128a4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590613363565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e4906133f5565b60405180910390fd5b60008111611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790613487565b60405180910390fd5b600954600881905550611841610d74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118af575061187f610d74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cc957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119585750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61196157600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a0c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a625750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a6f575060075442105b15611bae57600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac29190612f16565b1115611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afa906134f3565b60405180910390fd5b600d54811115611b1257600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5d57600080fd5b601e42611b6a9190612f16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601460159054906101000a900460ff16158015611c195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c315750601460169054906101000a900460ff165b8015611c875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cc8576000611c9730610a98565b9050600f54811115611cc657611cac81611f70565b60004790506000811115611cc457611cc347611e4d565b5b505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d745750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dca5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd957600a546008819055505b611de4838383612361565b505050565b6000838311158290611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e289190612728565b60405180910390fd5b5060008385611e409190613513565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611eb1600b54611ea360648661147a90919063ffffffff16565b6114c490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611edc573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f41600c54611f3360648661147a90919063ffffffff16565b6114c490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f6c573d6000803e3d6000fd5b5050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fa857611fa76129e5565b5b604051908082528060200260200182016040528015611fd65781602001602082028036833780820191505090505b5090503081600081518110611fee57611fed612fb6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b9919061355c565b816001815181106120cd576120cc612fb6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611546565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612198959493929190613682565b600060405180830381600087803b1580156121b257600080fd5b505af11580156121c6573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6001601460156101000a81548160ff02191690831515021790555061223130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611546565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612298969594939291906136dc565b60606040518083038185885af11580156122b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122db919061373d565b5050506000601460156101000a81548160ff021916908315150217905550505050565b60008083118290612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9190612728565b60405180910390fd5b5060008385612354919061310a565b9050809150509392505050565b60008061236d8361259c565b915091506123c383600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ed81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161258d91906128a4565b60405180910390a35050505050565b60008060006125ca6103e86125bc600854876114c490919063ffffffff16565b61147a90919063ffffffff16565b905060006125e182866125f090919063ffffffff16565b90508082935093505050915091565b600061263283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de9565b905092915050565b60008082846126499190612f16565b90508381101561268e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612685906137dc565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126d25780820151818401526020810190506126b7565b60008484015250505050565b6000601f19601f8301169050919050565b60006126fa82612698565b61270481856126a3565b93506127148185602086016126b4565b61271d816126de565b840191505092915050565b6000602082019050818103600083015261274281846126ef565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127898261275e565b9050919050565b6127998161277e565b81146127a457600080fd5b50565b6000813590506127b681612790565b92915050565b6000819050919050565b6127cf816127bc565b81146127da57600080fd5b50565b6000813590506127ec816127c6565b92915050565b6000806040838503121561280957612808612754565b5b6000612817858286016127a7565b9250506020612828858286016127dd565b9150509250929050565b60008115159050919050565b61284781612832565b82525050565b6000602082019050612862600083018461283e565b92915050565b60006020828403121561287e5761287d612754565b5b600061288c848285016127a7565b91505092915050565b61289e816127bc565b82525050565b60006020820190506128b96000830184612895565b92915050565b600080604083850312156128d6576128d5612754565b5b60006128e4858286016127dd565b92505060206128f5858286016127dd565b9150509250929050565b60008060006060848603121561291857612917612754565b5b6000612926868287016127a7565b9350506020612937868287016127a7565b9250506040612948868287016127dd565b9150509250925092565b600060ff82169050919050565b61296881612952565b82525050565b6000602082019050612983600083018461295f565b92915050565b60006020828403121561299f5761299e612754565b5b60006129ad848285016127dd565b91505092915050565b6129bf8161277e565b82525050565b60006020820190506129da60008301846129b6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a1d826126de565b810181811067ffffffffffffffff82111715612a3c57612a3b6129e5565b5b80604052505050565b6000612a4f61274a565b9050612a5b8282612a14565b919050565b600067ffffffffffffffff821115612a7b57612a7a6129e5565b5b602082029050602081019050919050565b600080fd5b6000612aa4612a9f84612a60565b612a45565b90508083825260208201905060208402830185811115612ac757612ac6612a8c565b5b835b81811015612af05780612adc88826127a7565b845260208401935050602081019050612ac9565b5050509392505050565b600082601f830112612b0f57612b0e6129e0565b5b8135612b1f848260208601612a91565b91505092915050565b600060208284031215612b3e57612b3d612754565b5b600082013567ffffffffffffffff811115612b5c57612b5b612759565b5b612b6884828501612afa565b91505092915050565b600067ffffffffffffffff821115612b8c57612b8b6129e5565b5b602082029050602081019050919050565b6000612bb0612bab84612b71565b612a45565b90508083825260208201905060208402830185811115612bd357612bd2612a8c565b5b835b81811015612bfc5780612be888826127dd565b845260208401935050602081019050612bd5565b5050509392505050565b600082601f830112612c1b57612c1a6129e0565b5b8135612c2b848260208601612b9d565b91505092915050565b60008060408385031215612c4b57612c4a612754565b5b600083013567ffffffffffffffff811115612c6957612c68612759565b5b612c7585828601612afa565b925050602083013567ffffffffffffffff811115612c9657612c95612759565b5b612ca285828601612c06565b9150509250929050565b60008060408385031215612cc357612cc2612754565b5b6000612cd1858286016127a7565b9250506020612ce2858286016127a7565b9150509250929050565b600081519050612cfb816127c6565b92915050565b600060208284031215612d1757612d16612754565b5b6000612d2584828501612cec565b91505092915050565b6000819050919050565b6000612d53612d4e612d498461275e565b612d2e565b61275e565b9050919050565b6000612d6582612d38565b9050919050565b6000612d7782612d5a565b9050919050565b612d8781612d6c565b82525050565b6000604082019050612da26000830185612d7e565b612daf6020830184612895565b9392505050565b612dbf81612832565b8114612dca57600080fd5b50565b600081519050612ddc81612db6565b92915050565b600060208284031215612df857612df7612754565b5b6000612e0684828501612dcd565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612e456019836126a3565b9150612e5082612e0f565b602082019050919050565b60006020820190508181036000830152612e7481612e38565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612eb16020836126a3565b9150612ebc82612e7b565b602082019050919050565b60006020820190508181036000830152612ee081612ea4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f21826127bc565b9150612f2c836127bc565b9250828201905080821115612f4457612f43612ee7565b5b92915050565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b6000612f80600b836126a3565b9150612f8b82612f4a565b602082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ff0826127bc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361302257613021612ee7565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006130636017836126a3565b915061306e8261302d565b602082019050919050565b6000602082019050818103600083015261309281613056565b9050919050565b60006130a4826127bc565b91506130af836127bc565b92508282026130bd816127bc565b915082820484148315176130d4576130d3612ee7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613115826127bc565b9150613120836127bc565b9250826131305761312f6130db565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131976021836126a3565b91506131a28261313b565b604082019050919050565b600060208201905081810360008301526131c68161318a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132296024836126a3565b9150613234826131cd565b604082019050919050565b600060208201905081810360008301526132588161321c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132bb6022836126a3565b91506132c68261325f565b604082019050919050565b600060208201905081810360008301526132ea816132ae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061334d6025836126a3565b9150613358826132f1565b604082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133df6023836126a3565b91506133ea82613383565b604082019050919050565b6000602082019050818103600083015261340e816133d2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134716029836126a3565b915061347c82613415565b604082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b60006134dd6010836126a3565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b600061351e826127bc565b9150613529836127bc565b925082820390508181111561354157613540612ee7565b5b92915050565b60008151905061355681612790565b92915050565b60006020828403121561357257613571612754565b5b600061358084828501613547565b91505092915050565b6000819050919050565b60006135ae6135a96135a484613589565b612d2e565b6127bc565b9050919050565b6135be81613593565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135f98161277e565b82525050565b600061360b83836135f0565b60208301905092915050565b6000602082019050919050565b600061362f826135c4565b61363981856135cf565b9350613644836135e0565b8060005b8381101561367557815161365c88826135ff565b975061366783613617565b925050600181019050613648565b5085935050505092915050565b600060a0820190506136976000830188612895565b6136a460208301876135b5565b81810360408301526136b68186613624565b90506136c560608301856129b6565b6136d26080830184612895565b9695505050505050565b600060c0820190506136f160008301896129b6565b6136fe6020830188612895565b61370b60408301876135b5565b61371860608301866135b5565b61372560808301856129b6565b61373260a0830184612895565b979650505050505050565b60008060006060848603121561375657613755612754565b5b600061376486828701612cec565b935050602061377586828701612cec565b925050604061378686828701612cec565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137c6601b836126a3565b91506137d182613790565b602082019050919050565b600060208201905081810360008301526137f5816137b9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031a8ed20e0c3bce32a26734335ef9e9c427c2d2a733396ae8acb52444c81e02764736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610419578063b515566a14610456578063ccbf6ae21461047f578063dd62ed3e146104a8578063e57f14e1146104e5578063f2fde38b1461050e5761014b565b8063715018a614610343578063751039fc1461035a5780638b25272b146103715780638da5cb5b1461039a57806395d89b41146103c5578063a72e41ff146103f05761014b565b806323b872dd1161010857806323b872dd14610235578063273123b714610272578063313ce5671461029b5780634ea18fab146102c65780636fc3eaec146102ef57806370a08231146103065761014b565b806306fdde0314610150578063095ea7b31461017b57806316114acd146101b857806318160ddd146101e157806321ecff5b1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610537565b6040516101729190612728565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d91906127f2565b610574565b6040516101af919061284d565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612868565b610592565b005b3480156101ed57600080fd5b506101f6610716565b60405161020391906128a4565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e91906128bf565b610725565b005b34801561024157600080fd5b5061025c600480360381019061025791906128ff565b6107e9565b604051610269919061284d565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612868565b6108c2565b005b3480156102a757600080fd5b506102b06109b2565b6040516102bd919061296e565b60405180910390f35b3480156102d257600080fd5b506102ed60048036038101906102e89190612989565b6109bb565b005b3480156102fb57600080fd5b50610304610a26565b005b34801561031257600080fd5b5061032d60048036038101906103289190612868565b610a98565b60405161033a91906128a4565b60405180910390f35b34801561034f57600080fd5b50610358610ae1565b005b34801561036657600080fd5b5061036f610c34565b005b34801561037d57600080fd5b50610398600480360381019061039391906128bf565b610cb3565b005b3480156103a657600080fd5b506103af610d74565b6040516103bc91906129c5565b60405180910390f35b3480156103d157600080fd5b506103da610d9d565b6040516103e79190612728565b60405180910390f35b3480156103fc57600080fd5b5061041760048036038101906104129190612868565b610dda565b005b34801561042557600080fd5b50610440600480360381019061043b91906127f2565b610ead565b60405161044d919061284d565b60405180910390f35b34801561046257600080fd5b5061047d60048036038101906104789190612b28565b610ecb565b005b34801561048b57600080fd5b506104a660048036038101906104a19190612c34565b610ff5565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190612cac565b6111e5565b6040516104dc91906128a4565b60405180910390f35b3480156104f157600080fd5b5061050c60048036038101906105079190612868565b61126c565b005b34801561051a57600080fd5b5061053560048036038101906105309190612868565b611328565b005b60606040518060400160405280600881526020017f5465682045796573000000000000000000000000000000000000000000000000815250905090565b600061058861058161153e565b8484611546565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105d361153e565b73ffffffffffffffffffffffffffffffffffffffff16146105f357600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161067091906129c5565b602060405180830381865afa15801561068d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b19190612d01565b6040518363ffffffff1660e01b81526004016106ce929190612d8d565b6020604051808303816000875af11580156106ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107119190612de2565b505050565b600066038d7ea4c68000905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661076661153e565b73ffffffffffffffffffffffffffffffffffffffff161461078657600080fd5b60648211158015610798575060648111155b6107d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ce90612e5b565b60405180910390fd5b8160098190555080600a819055505050565b60006107f684848461170f565b6108b78461080261153e565b6108b2856040518060600160405280602881526020016137fd60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061086861153e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611de99092919063ffffffff16565b611546565b600190509392505050565b6108ca61153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094e90612ec7565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109fc61153e565b73ffffffffffffffffffffffffffffffffffffffff1614610a1c57600080fd5b80600f8190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6761153e565b73ffffffffffffffffffffffffffffffffffffffff1614610a8757600080fd5b6000479050610a9581611e4d565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ae961153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6d90612ec7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c7561153e565b73ffffffffffffffffffffffffffffffffffffffff1614610c9557600080fd5b66038d7ea4c68000600d8190555066038d7ea4c68000600e81905550565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf461153e565b73ffffffffffffffffffffffffffffffffffffffff1614610d1457600080fd5b60648183610d229190612f16565b14610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990612f96565b60405180910390fd5b81600b8190555080600c819055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f58434f4d4d000000000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e1b61153e565b73ffffffffffffffffffffffffffffffffffffffff1614610e3b57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000610e9e30610a98565b9050610ea981611f70565b5050565b6000610ec1610eba61153e565b848461170f565b6001905092915050565b610ed361153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5790612ec7565b60405180910390fd5b60005b8151811015610ff157600160056000848481518110610f8557610f84612fb6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610fe990612fe5565b915050610f63565b5050565b610ffd61153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612ec7565b60405180910390fd5b60148054906101000a900460ff16156110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90613079565b60405180910390fd5b60005b825181101561117e57633b9aca008282815181106110fc576110fb612fb6565b5b602002602001015161110e9190613099565b6002600085848151811061112557611124612fb6565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061117690612fe5565b9150506110db565b5061119961118b30610a98565b47611194610d74565b6121e9565b6001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff02191690831515021790555060f0426111db9190612f16565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ad61153e565b73ffffffffffffffffffffffffffffffffffffffff16146112cd57600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61133061153e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490612ec7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122fe565b905092915050565b60008083036114d65760009050611538565b600082846114e49190613099565b90508284826114f3919061310a565b14611533576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152a906131ad565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac9061323f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161b906132d1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161170291906128a4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590613363565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e4906133f5565b60405180910390fd5b60008111611830576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182790613487565b60405180910390fd5b600954600881905550611841610d74565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118af575061187f610d74565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611cc957600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119585750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61196157600080fd5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a0c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611a625750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611a6f575060075442105b15611bae57600e5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ac29190612f16565b1115611b03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afa906134f3565b60405180910390fd5b600d54811115611b1257600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611b5d57600080fd5b601e42611b6a9190612f16565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601460159054906101000a900460ff16158015611c195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c315750601460169054906101000a900460ff165b8015611c875750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cc8576000611c9730610a98565b9050600f54811115611cc657611cac81611f70565b60004790506000811115611cc457611cc347611e4d565b5b505b505b5b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611d745750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611dca5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611dd957600a546008819055505b611de4838383612361565b505050565b6000838311158290611e31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e289190612728565b60405180910390fd5b5060008385611e409190613513565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611eb1600b54611ea360648661147a90919063ffffffff16565b6114c490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611edc573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611f41600c54611f3360648661147a90919063ffffffff16565b6114c490919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f6c573d6000803e3d6000fd5b5050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611fa857611fa76129e5565b5b604051908082528060200260200182016040528015611fd65781602001602082028036833780820191505090505b5090503081600081518110611fee57611fed612fb6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612095573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b9919061355c565b816001815181106120cd576120cc612fb6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061213430601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611546565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612198959493929190613682565b600060405180830381600087803b1580156121b257600080fd5b505af11580156121c6573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6001601460156101000a81548160ff02191690831515021790555061223130601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611546565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612298969594939291906136dc565b60606040518083038185885af11580156122b6573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122db919061373d565b5050506000601460156101000a81548160ff021916908315150217905550505050565b60008083118290612345576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233c9190612728565b60405180910390fd5b5060008385612354919061310a565b9050809150509392505050565b60008061236d8361259c565b915091506123c383600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125f090919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061245882600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263a90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124ed81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161258d91906128a4565b60405180910390a35050505050565b60008060006125ca6103e86125bc600854876114c490919063ffffffff16565b61147a90919063ffffffff16565b905060006125e182866125f090919063ffffffff16565b90508082935093505050915091565b600061263283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611de9565b905092915050565b60008082846126499190612f16565b90508381101561268e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612685906137dc565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126d25780820151818401526020810190506126b7565b60008484015250505050565b6000601f19601f8301169050919050565b60006126fa82612698565b61270481856126a3565b93506127148185602086016126b4565b61271d816126de565b840191505092915050565b6000602082019050818103600083015261274281846126ef565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127898261275e565b9050919050565b6127998161277e565b81146127a457600080fd5b50565b6000813590506127b681612790565b92915050565b6000819050919050565b6127cf816127bc565b81146127da57600080fd5b50565b6000813590506127ec816127c6565b92915050565b6000806040838503121561280957612808612754565b5b6000612817858286016127a7565b9250506020612828858286016127dd565b9150509250929050565b60008115159050919050565b61284781612832565b82525050565b6000602082019050612862600083018461283e565b92915050565b60006020828403121561287e5761287d612754565b5b600061288c848285016127a7565b91505092915050565b61289e816127bc565b82525050565b60006020820190506128b96000830184612895565b92915050565b600080604083850312156128d6576128d5612754565b5b60006128e4858286016127dd565b92505060206128f5858286016127dd565b9150509250929050565b60008060006060848603121561291857612917612754565b5b6000612926868287016127a7565b9350506020612937868287016127a7565b9250506040612948868287016127dd565b9150509250925092565b600060ff82169050919050565b61296881612952565b82525050565b6000602082019050612983600083018461295f565b92915050565b60006020828403121561299f5761299e612754565b5b60006129ad848285016127dd565b91505092915050565b6129bf8161277e565b82525050565b60006020820190506129da60008301846129b6565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a1d826126de565b810181811067ffffffffffffffff82111715612a3c57612a3b6129e5565b5b80604052505050565b6000612a4f61274a565b9050612a5b8282612a14565b919050565b600067ffffffffffffffff821115612a7b57612a7a6129e5565b5b602082029050602081019050919050565b600080fd5b6000612aa4612a9f84612a60565b612a45565b90508083825260208201905060208402830185811115612ac757612ac6612a8c565b5b835b81811015612af05780612adc88826127a7565b845260208401935050602081019050612ac9565b5050509392505050565b600082601f830112612b0f57612b0e6129e0565b5b8135612b1f848260208601612a91565b91505092915050565b600060208284031215612b3e57612b3d612754565b5b600082013567ffffffffffffffff811115612b5c57612b5b612759565b5b612b6884828501612afa565b91505092915050565b600067ffffffffffffffff821115612b8c57612b8b6129e5565b5b602082029050602081019050919050565b6000612bb0612bab84612b71565b612a45565b90508083825260208201905060208402830185811115612bd357612bd2612a8c565b5b835b81811015612bfc5780612be888826127dd565b845260208401935050602081019050612bd5565b5050509392505050565b600082601f830112612c1b57612c1a6129e0565b5b8135612c2b848260208601612b9d565b91505092915050565b60008060408385031215612c4b57612c4a612754565b5b600083013567ffffffffffffffff811115612c6957612c68612759565b5b612c7585828601612afa565b925050602083013567ffffffffffffffff811115612c9657612c95612759565b5b612ca285828601612c06565b9150509250929050565b60008060408385031215612cc357612cc2612754565b5b6000612cd1858286016127a7565b9250506020612ce2858286016127a7565b9150509250929050565b600081519050612cfb816127c6565b92915050565b600060208284031215612d1757612d16612754565b5b6000612d2584828501612cec565b91505092915050565b6000819050919050565b6000612d53612d4e612d498461275e565b612d2e565b61275e565b9050919050565b6000612d6582612d38565b9050919050565b6000612d7782612d5a565b9050919050565b612d8781612d6c565b82525050565b6000604082019050612da26000830185612d7e565b612daf6020830184612895565b9392505050565b612dbf81612832565b8114612dca57600080fd5b50565b600081519050612ddc81612db6565b92915050565b600060208284031215612df857612df7612754565b5b6000612e0684828501612dcd565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b6000612e456019836126a3565b9150612e5082612e0f565b602082019050919050565b60006020820190508181036000830152612e7481612e38565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612eb16020836126a3565b9150612ebc82612e7b565b602082019050919050565b60006020820190508181036000830152612ee081612ea4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f21826127bc565b9150612f2c836127bc565b9250828201905080821115612f4457612f43612ee7565b5b92915050565b7f6d61746820666167676f74000000000000000000000000000000000000000000600082015250565b6000612f80600b836126a3565b9150612f8b82612f4a565b602082019050919050565b60006020820190508181036000830152612faf81612f73565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612ff0826127bc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361302257613021612ee7565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006130636017836126a3565b915061306e8261302d565b602082019050919050565b6000602082019050818103600083015261309281613056565b9050919050565b60006130a4826127bc565b91506130af836127bc565b92508282026130bd816127bc565b915082820484148315176130d4576130d3612ee7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613115826127bc565b9150613120836127bc565b9250826131305761312f6130db565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131976021836126a3565b91506131a28261313b565b604082019050919050565b600060208201905081810360008301526131c68161318a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132296024836126a3565b9150613234826131cd565b604082019050919050565b600060208201905081810360008301526132588161321c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132bb6022836126a3565b91506132c68261325f565b604082019050919050565b600060208201905081810360008301526132ea816132ae565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061334d6025836126a3565b9150613358826132f1565b604082019050919050565b6000602082019050818103600083015261337c81613340565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133df6023836126a3565b91506133ea82613383565b604082019050919050565b6000602082019050818103600083015261340e816133d2565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006134716029836126a3565b915061347c82613415565b604082019050919050565b600060208201905081810360008301526134a081613464565b9050919050565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b60006134dd6010836126a3565b91506134e8826134a7565b602082019050919050565b6000602082019050818103600083015261350c816134d0565b9050919050565b600061351e826127bc565b9150613529836127bc565b925082820390508181111561354157613540612ee7565b5b92915050565b60008151905061355681612790565b92915050565b60006020828403121561357257613571612754565b5b600061358084828501613547565b91505092915050565b6000819050919050565b60006135ae6135a96135a484613589565b612d2e565b6127bc565b9050919050565b6135be81613593565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6135f98161277e565b82525050565b600061360b83836135f0565b60208301905092915050565b6000602082019050919050565b600061362f826135c4565b61363981856135cf565b9350613644836135e0565b8060005b8381101561367557815161365c88826135ff565b975061366783613617565b925050600181019050613648565b5085935050505092915050565b600060a0820190506136976000830188612895565b6136a460208301876135b5565b81810360408301526136b68186613624565b90506136c560608301856129b6565b6136d26080830184612895565b9695505050505050565b600060c0820190506136f160008301896129b6565b6136fe6020830188612895565b61370b60408301876135b5565b61371860608301866135b5565b61372560808301856129b6565b61373260a0830184612895565b979650505050505050565b60008060006060848603121561375657613755612754565b5b600061376486828701612cec565b935050602061377586828701612cec565b925050604061378686828701612cec565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006137c6601b836126a3565b91506137d182613790565b602082019050919050565b600060208201905081810360008301526137f5816137b9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122031a8ed20e0c3bce32a26734335ef9e9c427c2d2a733396ae8acb52444c81e02764736f6c63430008110033
Deployed Bytecode Sourcemap
3835:9925:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6424:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7255:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13513:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6701:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7894:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7424:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12247:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6610:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7750:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13072:188;;;;;;;;;;;;;:::i;:::-;;6804:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2914:148;;;;;;;;;;;;;:::i;:::-;;8350:156;;;;;;;;;;;;;:::i;:::-;;8133:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2519:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6515:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12813:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6929:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12071:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11626:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7104:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8516:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2733:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6424:83;6461:13;6494:5;;;;;;;;;;;;;;;;;6487:12;;6424:83;:::o;7255:161::-;7330:4;7347:39;7356:12;:10;:12::i;:::-;7370:7;7379:6;7347:8;:39::i;:::-;7404:4;7397:11;;7255:161;;;;:::o;13513:244::-;13602:9;;;;;;;;;;;13586:25;;:12;:10;:12::i;:::-;:25;;;13578:34;;;;;;13623:20;13653:12;13623:43;;13677:13;:22;;;13700:9;;;;;;;;;;;13710:13;:23;;;13742:4;13710:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13677:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13567:190;13513:244;:::o;6701:95::-;6754:7;4289:17;6774:14;;6701:95;:::o;7894:231::-;7987:9;;;;;;;;;;;7971:25;;:12;:10;:12::i;:::-;:25;;;7963:34;;;;;;8024:3;8016:4;:11;;:27;;;;;8040:3;8031:5;:12;;8016:27;8008:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8090:4;8083;:11;;;;8112:5;8105:4;:12;;;;7894:231;;:::o;7424:313::-;7522:4;7539:36;7549:6;7557:9;7568:6;7539:9;:36::i;:::-;7586:121;7595:6;7603:12;:10;:12::i;:::-;7617:89;7655:6;7617:89;;;;;;;;;;;;;;;;;:11;:19;7629:6;7617:19;;;;;;;;;;;;;;;:33;7637:12;:10;:12::i;:::-;7617:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7586:8;:121::i;:::-;7725:4;7718:11;;7424:313;;;;;:::o;12247:88::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12322:5:::1;12307:4;:12;12312:6;12307:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12247:88:::0;:::o;6610:83::-;6651:5;5211:1;6669:16;;6610:83;:::o;7750:136::-;7836:9;;;;;;;;;;;7820:25;;:12;:10;:12::i;:::-;:25;;;7812:34;;;;;;7870:6;7857:10;:19;;;;7750:136;:::o;13072:188::-;13138:9;;;;;;;;;;;13122:25;;:12;:10;:12::i;:::-;:25;;;13114:34;;;;;;13159:26;13188:21;13159:50;;13220:32;13233:18;13220:12;:32::i;:::-;13103:157;13072:188::o;6804:117::-;6870:7;6897;:16;6905:7;6897:16;;;;;;;;;;;;;;;;6890:23;;6804:117;;;:::o;2914:148::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3021:1:::1;2984:40;;3005:6;::::0;::::1;;;;;;;;2984:40;;;;;;;;;;;;3052:1;3035:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2914:148::o:0;8350:156::-;8418:9;;;;;;;;;;;8402:25;;:12;:10;:12::i;:::-;:25;;;8394:34;;;;;;4289:17;8439:12;:22;;;;4289:17;8472:16;:26;;;;8350:156::o;8133:209::-;8230:9;;;;;;;;;;;8214:25;;:12;:10;:12::i;:::-;:25;;;8206:34;;;;;;8274:3;8266:4;8259;:11;;;;:::i;:::-;:18;8251:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;8309:4;8303:3;:10;;;;8330:4;8324:3;:10;;;;8133:209;;:::o;2519:79::-;2557:7;2584:6;;;;;;;;;;;2577:13;;2519:79;:::o;6515:87::-;6554:13;6587:7;;;;;;;;;;;;;;;;;6580:14;;6515:87;:::o;12813:247::-;12893:9;;;;;;;;;;;12877:25;;:12;:10;:12::i;:::-;:25;;;12869:34;;;;;;12943:4;12914:18;:26;12933:6;12914:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;12958:23;12984:24;13002:4;12984:9;:24::i;:::-;12958:50;;13019:33;13036:15;13019:16;:33::i;:::-;12858:202;12813:247;:::o;6929:167::-;7007:4;7024:42;7034:12;:10;:12::i;:::-;7048:9;7059:6;7024:9;:42::i;:::-;7084:4;7077:11;;6929:167;;;;:::o;12071:164::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12145:6:::1;12140:88;12161:5;:12;12157:1;:16;12140:88;;;12212:4;12195;:14;12200:5;12206:1;12200:8;;;;;;;;:::i;:::-;;;;;;;;12195:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12175:3;;;;;:::i;:::-;;;;12140:88;;;;12071:164:::0;:::o;11626:433::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11742:11:::1;::::0;::::1;;;;;;;;11741:12;11733:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11795:6;11791:77;11806:9;:16;11804:1;:18;11791:77;;;11861:5;11850:7;11858:1;11850:10;;;;;;;;:::i;:::-;;;;;;;;:16;;;;:::i;:::-;11828:7;:21;11836:9;11846:1;11836:12;;;;;;;;:::i;:::-;;;;;;;;11828:21;;;;;;;;;;;;;;;:38;;;;11823:3;;;;;:::i;:::-;;;;11791:77;;;;11878:68;11891:24;11909:4;11891:9;:24::i;:::-;11916:21;11938:7;:5;:7::i;:::-;11878:12;:68::i;:::-;11971:4;11957:11;;:18;;;;;;;;;;;;;;;;;;12000:4;11986:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;12041:9;12022:15;:29;;;;:::i;:::-;12015:4;:36;;;;11626:433:::0;;:::o;7104:143::-;7185:7;7212:11;:18;7224:5;7212:18;;;;;;;;;;;;;;;:27;7231:7;7212:27;;;;;;;;;;;;;;;;7205:34;;7104:143;;;;:::o;8516:147::-;8601:9;;;;;;;;;;;8585:25;;:12;:10;:12::i;:::-;:25;;;8577:34;;;;;;8651:4;8622:18;:26;8641:6;8622:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8516:147;:::o;2733:173::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2849:9:::1;2820:39;;2841:6;::::0;::::1;;;;;;;;2820:39;;;;;;;;;;;;2879:9;2870:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2733:173:::0;:::o;1826:132::-;1884:7;1911:39;1915:1;1918;1911:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1904:46;;1826:132;;;;:::o;1572:246::-;1630:7;1659:1;1654;:6;1650:47;;1684:1;1677:8;;;;1650:47;1707:9;1723:1;1719;:5;;;;:::i;:::-;1707:17;;1752:1;1747;1743;:5;;;;:::i;:::-;:10;1735:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1809:1;1802:8;;;1572:246;;;;;:::o;237:98::-;290:7;317:10;310:17;;237:98;:::o;8676:335::-;8786:1;8769:19;;:5;:19;;;8761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8867:1;8848:21;;:7;:21;;;8840:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8949:6;8919:11;:18;8931:5;8919:18;;;;;;;;;;;;;;;:27;8938:7;8919:27;;;;;;;;;;;;;;;:36;;;;8987:7;8971:32;;8980:5;8971:32;;;8996:6;8971:32;;;;;;:::i;:::-;;;;;;;;8676:335;;;:::o;9019:1617::-;9123:1;9107:18;;:4;:18;;;9099:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9200:1;9186:16;;:2;:16;;;9178:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9270:1;9261:6;:10;9253:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9337:4;;9330;:11;;;;9364:7;:5;:7::i;:::-;9356:15;;:4;:15;;;;:32;;;;;9381:7;:5;:7::i;:::-;9375:13;;:2;:13;;;;9356:32;9352:1092;;;9414:4;:10;9419:4;9414:10;;;;;;;;;;;;;;;;;;;;;;;;;9413:11;:24;;;;;9429:4;:8;9434:2;9429:8;;;;;;;;;;;;;;;;;;;;;;;;;9428:9;9413:24;9405:33;;;;;;9465:13;;;;;;;;;;;9457:21;;:4;:21;;;:55;;;;;9496:15;;;;;;;;;;;9482:30;;:2;:30;;;;9457:55;:83;;;;;9518:18;:22;9537:2;9518:22;;;;;;;;;;;;;;;;;;;;;;;;;9516:24;9457:83;:111;;;;;9563:4;;9545:15;:22;9457:111;9453:422;;;9651:16;;9640:6;9626:7;:11;9634:2;9626:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9625:42;;9617:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9724:12;;9714:6;:22;;9706:31;;;;;;9779:15;9764:8;:12;9773:2;9764:12;;;;;;;;;;;;;;;;:30;9756:39;;;;;;9848:10;9829:15;:30;;;;:::i;:::-;9814:8;:12;9823:2;9814:12;;;;;;;;;;;;;;;:45;;;;9453:422;9922:6;;;;;;;;;;;9921:7;:32;;;;;9940:13;;;;;;;;;;;9932:21;;:4;:21;;;;9921:32;:47;;;;;9957:11;;;;;;;;;;;9921:47;:76;;;;;9973:18;:24;9992:4;9973:24;;;;;;;;;;;;;;;;;;;;;;;;;9972:25;9921:76;9917:516;;;10018:28;10049:24;10067:4;10049:9;:24::i;:::-;10018:55;;10118:10;;10095:20;:33;10092:326;;;10152:38;10169:20;10152:16;:38::i;:::-;10213:26;10242:21;10213:50;;10310:1;10289:18;:22;10286:113;;;10340:35;10353:21;10340:12;:35::i;:::-;10286:113;10129:289;10092:326;9999:434;9917:516;9352:1092;10464:13;;;;;;;;;;;10458:19;;:2;:19;;;:55;;;;;10497:15;;;;;;;;;;;10481:32;;:4;:32;;;;10458:55;:85;;;;;10519:18;:24;10538:4;10519:24;;;;;;;;;;;;;;;;;;;;;;;;;10517:26;10458:85;10454:129;;;10567:4;;10560;:11;;;;10454:129;10595:33;10613:4;10618:2;10621:6;10595:17;:33::i;:::-;9019:1617;;;:::o;1374:190::-;1460:7;1493:1;1488;:6;;1496:12;1480:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1520:9;1536:1;1532;:5;;;;:::i;:::-;1520:17;;1555:1;1548:8;;;1374:190;;;;;:::o;11443:171::-;11500:9;;;;;;;;;;;:18;;:44;11519:24;11539:3;;11519:15;11530:3;11519:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11500:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11555:16;;;;;;;;;;;:25;;:51;11581:24;11601:3;;11581:15;11592:3;11581:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11555:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11443:171;:::o;10644:483::-;5536:4;5527:6;;:13;;;;;;;;;;;;;;;;;;10722:21:::1;10760:1;10746:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10722:40;;10791:4;10773;10778:1;10773:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10817:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10807:4;10812:1;10807:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10850:62;10867:4;10882:15;;;;;;;;;;;10900:11;10850:8;:62::i;:::-;10923:15;;;;;;;;;;;:66;;;11004:11;11030:1;11046:4;11073;11093:15;10923:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10711:416;5572:5:::0;5563:6;;:14;;;;;;;;;;;;;;;;;;10644:483;:::o;11141:288::-;5536:4;5527:6;;:13;;;;;;;;;;;;;;;;;;11247:60:::1;11264:4;11278:15;;;;;;;;;;;11295:11;11247:8;:60::i;:::-;11318:15;;;;;;;;;;;:31;;;11357:9;11376:4;11382:11;11394:1;11396::::0;11398:6:::1;11405:15;11318:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5572:5:::0;5563:6;;:14;;;;;;;;;;;;;;;;;;11141:288;;;:::o;1966:189::-;2052:7;2084:1;2080;:5;2087:12;2072:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2111:9;2127:1;2123;:5;;;;:::i;:::-;2111:17;;2146:1;2139:8;;;1966:189;;;;;:::o;12343:421::-;12442:22;12465:12;12481:20;12493:7;12481:11;:20::i;:::-;12441:60;;;;12530:28;12550:7;12530;:15;12538:6;12530:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12512:7;:15;12520:6;12512:15;;;;;;;;;;;;;;;:46;;;;12590:38;12613:14;12590:7;:18;12598:9;12590:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12569:7;:18;12577:9;12569:18;;;;;;;;;;;;;;;:59;;;;12665:32;12692:4;12665:7;:22;12681:4;12665:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12640:7;:22;12656:4;12640:22;;;;;;;;;;;;;;;:57;;;;12730:9;12713:43;;12722:6;12713:43;;;12741:14;12713:43;;;;;;:::i;:::-;;;;;;;;12430:334;;12343:421;;;:::o;13271:234::-;13331:7;13340;13360:12;13375:27;13397:4;13375:17;13387:4;;13375:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13360:42;;13413:23;13439:17;13451:4;13439:7;:11;;:17;;;;:::i;:::-;13413:43;;13475:15;13492:4;13467:30;;;;;;13271:234;;;:::o;1230:136::-;1288:7;1315:43;1319:1;1322;1315:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1308:50;;1230:136;;;;:::o;1043:179::-;1101:7;1121:9;1137:1;1133;:5;;;;:::i;:::-;1121:17;;1162:1;1157;:6;;1149:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1213:1;1206:8;;;1043:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:474::-;4201:6;4209;4258:2;4246:9;4237:7;4233:23;4229:32;4226:119;;;4264:79;;:::i;:::-;4226:119;4384:1;4409:53;4454:7;4445:6;4434:9;4430:22;4409:53;:::i;:::-;4399:63;;4355:117;4511:2;4537:53;4582:7;4573:6;4562:9;4558:22;4537:53;:::i;:::-;4527:63;;4482:118;4133:474;;;;;:::o;4613:619::-;4690:6;4698;4706;4755:2;4743:9;4734:7;4730:23;4726:32;4723:119;;;4761:79;;:::i;:::-;4723:119;4881:1;4906:53;4951:7;4942:6;4931:9;4927:22;4906:53;:::i;:::-;4896:63;;4852:117;5008:2;5034:53;5079:7;5070:6;5059:9;5055:22;5034:53;:::i;:::-;5024:63;;4979:118;5136:2;5162:53;5207:7;5198:6;5187:9;5183:22;5162:53;:::i;:::-;5152:63;;5107:118;4613:619;;;;;:::o;5238:86::-;5273:7;5313:4;5306:5;5302:16;5291:27;;5238:86;;;:::o;5330:112::-;5413:22;5429:5;5413:22;:::i;:::-;5408:3;5401:35;5330:112;;:::o;5448:214::-;5537:4;5575:2;5564:9;5560:18;5552:26;;5588:67;5652:1;5641:9;5637:17;5628:6;5588:67;:::i;:::-;5448:214;;;;:::o;5668:329::-;5727:6;5776:2;5764:9;5755:7;5751:23;5747:32;5744:119;;;5782:79;;:::i;:::-;5744:119;5902:1;5927:53;5972:7;5963:6;5952:9;5948:22;5927:53;:::i;:::-;5917:63;;5873:117;5668:329;;;;:::o;6003:118::-;6090:24;6108:5;6090:24;:::i;:::-;6085:3;6078:37;6003:118;;:::o;6127:222::-;6220:4;6258:2;6247:9;6243:18;6235:26;;6271:71;6339:1;6328:9;6324:17;6315:6;6271:71;:::i;:::-;6127:222;;;;:::o;6355:117::-;6464:1;6461;6454:12;6478:180;6526:77;6523:1;6516:88;6623:4;6620:1;6613:15;6647:4;6644:1;6637:15;6664:281;6747:27;6769:4;6747:27;:::i;:::-;6739:6;6735:40;6877:6;6865:10;6862:22;6841:18;6829:10;6826:34;6823:62;6820:88;;;6888:18;;:::i;:::-;6820:88;6928:10;6924:2;6917:22;6707:238;6664:281;;:::o;6951:129::-;6985:6;7012:20;;:::i;:::-;7002:30;;7041:33;7069:4;7061:6;7041:33;:::i;:::-;6951:129;;;:::o;7086:311::-;7163:4;7253:18;7245:6;7242:30;7239:56;;;7275:18;;:::i;:::-;7239:56;7325:4;7317:6;7313:17;7305:25;;7385:4;7379;7375:15;7367:23;;7086:311;;;:::o;7403:117::-;7512:1;7509;7502:12;7543:710;7639:5;7664:81;7680:64;7737:6;7680:64;:::i;:::-;7664:81;:::i;:::-;7655:90;;7765:5;7794:6;7787:5;7780:21;7828:4;7821:5;7817:16;7810:23;;7881:4;7873:6;7869:17;7861:6;7857:30;7910:3;7902:6;7899:15;7896:122;;;7929:79;;:::i;:::-;7896:122;8044:6;8027:220;8061:6;8056:3;8053:15;8027:220;;;8136:3;8165:37;8198:3;8186:10;8165:37;:::i;:::-;8160:3;8153:50;8232:4;8227:3;8223:14;8216:21;;8103:144;8087:4;8082:3;8078:14;8071:21;;8027:220;;;8031:21;7645:608;;7543:710;;;;;:::o;8276:370::-;8347:5;8396:3;8389:4;8381:6;8377:17;8373:27;8363:122;;8404:79;;:::i;:::-;8363:122;8521:6;8508:20;8546:94;8636:3;8628:6;8621:4;8613:6;8609:17;8546:94;:::i;:::-;8537:103;;8353:293;8276:370;;;;:::o;8652:539::-;8736:6;8785:2;8773:9;8764:7;8760:23;8756:32;8753:119;;;8791:79;;:::i;:::-;8753:119;8939:1;8928:9;8924:17;8911:31;8969:18;8961:6;8958:30;8955:117;;;8991:79;;:::i;:::-;8955:117;9096:78;9166:7;9157:6;9146:9;9142:22;9096:78;:::i;:::-;9086:88;;8882:302;8652:539;;;;:::o;9197:311::-;9274:4;9364:18;9356:6;9353:30;9350:56;;;9386:18;;:::i;:::-;9350:56;9436:4;9428:6;9424:17;9416:25;;9496:4;9490;9486:15;9478:23;;9197:311;;;:::o;9531:710::-;9627:5;9652:81;9668:64;9725:6;9668:64;:::i;:::-;9652:81;:::i;:::-;9643:90;;9753:5;9782:6;9775:5;9768:21;9816:4;9809:5;9805:16;9798:23;;9869:4;9861:6;9857:17;9849:6;9845:30;9898:3;9890:6;9887:15;9884:122;;;9917:79;;:::i;:::-;9884:122;10032:6;10015:220;10049:6;10044:3;10041:15;10015:220;;;10124:3;10153:37;10186:3;10174:10;10153:37;:::i;:::-;10148:3;10141:50;10220:4;10215:3;10211:14;10204:21;;10091:144;10075:4;10070:3;10066:14;10059:21;;10015:220;;;10019:21;9633:608;;9531:710;;;;;:::o;10264:370::-;10335:5;10384:3;10377:4;10369:6;10365:17;10361:27;10351:122;;10392:79;;:::i;:::-;10351:122;10509:6;10496:20;10534:94;10624:3;10616:6;10609:4;10601:6;10597:17;10534:94;:::i;:::-;10525:103;;10341:293;10264:370;;;;:::o;10640:894::-;10758:6;10766;10815:2;10803:9;10794:7;10790:23;10786:32;10783:119;;;10821:79;;:::i;:::-;10783:119;10969:1;10958:9;10954:17;10941:31;10999:18;10991:6;10988:30;10985:117;;;11021:79;;:::i;:::-;10985:117;11126:78;11196:7;11187:6;11176:9;11172:22;11126:78;:::i;:::-;11116:88;;10912:302;11281:2;11270:9;11266:18;11253:32;11312:18;11304:6;11301:30;11298:117;;;11334:79;;:::i;:::-;11298:117;11439:78;11509:7;11500:6;11489:9;11485:22;11439:78;:::i;:::-;11429:88;;11224:303;10640:894;;;;;:::o;11540:474::-;11608:6;11616;11665:2;11653:9;11644:7;11640:23;11636:32;11633:119;;;11671:79;;:::i;:::-;11633:119;11791:1;11816:53;11861:7;11852:6;11841:9;11837:22;11816:53;:::i;:::-;11806:63;;11762:117;11918:2;11944:53;11989:7;11980:6;11969:9;11965:22;11944:53;:::i;:::-;11934:63;;11889:118;11540:474;;;;;:::o;12020:143::-;12077:5;12108:6;12102:13;12093:22;;12124:33;12151:5;12124:33;:::i;:::-;12020:143;;;;:::o;12169:351::-;12239:6;12288:2;12276:9;12267:7;12263:23;12259:32;12256:119;;;12294:79;;:::i;:::-;12256:119;12414:1;12439:64;12495:7;12486:6;12475:9;12471:22;12439:64;:::i;:::-;12429:74;;12385:128;12169:351;;;;:::o;12526:60::-;12554:3;12575:5;12568:12;;12526:60;;;:::o;12592:142::-;12642:9;12675:53;12693:34;12702:24;12720:5;12702:24;:::i;:::-;12693:34;:::i;:::-;12675:53;:::i;:::-;12662:66;;12592:142;;;:::o;12740:126::-;12790:9;12823:37;12854:5;12823:37;:::i;:::-;12810:50;;12740:126;;;:::o;12872:134::-;12930:9;12963:37;12994:5;12963:37;:::i;:::-;12950:50;;12872:134;;;:::o;13012:147::-;13107:45;13146:5;13107:45;:::i;:::-;13102:3;13095:58;13012:147;;:::o;13165:348::-;13294:4;13332:2;13321:9;13317:18;13309:26;;13345:79;13421:1;13410:9;13406:17;13397:6;13345:79;:::i;:::-;13434:72;13502:2;13491:9;13487:18;13478:6;13434:72;:::i;:::-;13165:348;;;;;:::o;13519:116::-;13589:21;13604:5;13589:21;:::i;:::-;13582:5;13579:32;13569:60;;13625:1;13622;13615:12;13569:60;13519:116;:::o;13641:137::-;13695:5;13726:6;13720:13;13711:22;;13742:30;13766:5;13742:30;:::i;:::-;13641:137;;;;:::o;13784:345::-;13851:6;13900:2;13888:9;13879:7;13875:23;13871:32;13868:119;;;13906:79;;:::i;:::-;13868:119;14026:1;14051:61;14104:7;14095:6;14084:9;14080:22;14051:61;:::i;:::-;14041:71;;13997:125;13784:345;;;;:::o;14135:175::-;14275:27;14271:1;14263:6;14259:14;14252:51;14135:175;:::o;14316:366::-;14458:3;14479:67;14543:2;14538:3;14479:67;:::i;:::-;14472:74;;14555:93;14644:3;14555:93;:::i;:::-;14673:2;14668:3;14664:12;14657:19;;14316:366;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14688:419;;;:::o;15113:182::-;15253:34;15249:1;15241:6;15237:14;15230:58;15113:182;:::o;15301:366::-;15443:3;15464:67;15528:2;15523:3;15464:67;:::i;:::-;15457:74;;15540:93;15629:3;15540:93;:::i;:::-;15658:2;15653:3;15649:12;15642:19;;15301:366;;;:::o;15673:419::-;15839:4;15877:2;15866:9;15862:18;15854:26;;15926:9;15920:4;15916:20;15912:1;15901:9;15897:17;15890:47;15954:131;16080:4;15954:131;:::i;:::-;15946:139;;15673:419;;;:::o;16098:180::-;16146:77;16143:1;16136:88;16243:4;16240:1;16233:15;16267:4;16264:1;16257:15;16284:191;16324:3;16343:20;16361:1;16343:20;:::i;:::-;16338:25;;16377:20;16395:1;16377:20;:::i;:::-;16372:25;;16420:1;16417;16413:9;16406:16;;16441:3;16438:1;16435:10;16432:36;;;16448:18;;:::i;:::-;16432:36;16284:191;;;;:::o;16481:161::-;16621:13;16617:1;16609:6;16605:14;16598:37;16481:161;:::o;16648:366::-;16790:3;16811:67;16875:2;16870:3;16811:67;:::i;:::-;16804:74;;16887:93;16976:3;16887:93;:::i;:::-;17005:2;17000:3;16996:12;16989:19;;16648:366;;;:::o;17020:419::-;17186:4;17224:2;17213:9;17209:18;17201:26;;17273:9;17267:4;17263:20;17259:1;17248:9;17244:17;17237:47;17301:131;17427:4;17301:131;:::i;:::-;17293:139;;17020:419;;;:::o;17445:180::-;17493:77;17490:1;17483:88;17590:4;17587:1;17580:15;17614:4;17611:1;17604:15;17631:233;17670:3;17693:24;17711:5;17693:24;:::i;:::-;17684:33;;17739:66;17732:5;17729:77;17726:103;;17809:18;;:::i;:::-;17726:103;17856:1;17849:5;17845:13;17838:20;;17631:233;;;:::o;17870:173::-;18010:25;18006:1;17998:6;17994:14;17987:49;17870:173;:::o;18049:366::-;18191:3;18212:67;18276:2;18271:3;18212:67;:::i;:::-;18205:74;;18288:93;18377:3;18288:93;:::i;:::-;18406:2;18401:3;18397:12;18390:19;;18049:366;;;:::o;18421:419::-;18587:4;18625:2;18614:9;18610:18;18602:26;;18674:9;18668:4;18664:20;18660:1;18649:9;18645:17;18638:47;18702:131;18828:4;18702:131;:::i;:::-;18694:139;;18421:419;;;:::o;18846:410::-;18886:7;18909:20;18927:1;18909:20;:::i;:::-;18904:25;;18943:20;18961:1;18943:20;:::i;:::-;18938:25;;18998:1;18995;18991:9;19020:30;19038:11;19020:30;:::i;:::-;19009:41;;19199:1;19190:7;19186:15;19183:1;19180:22;19160:1;19153:9;19133:83;19110:139;;19229:18;;:::i;:::-;19110:139;18894:362;18846:410;;;;:::o;19262:180::-;19310:77;19307:1;19300:88;19407:4;19404:1;19397:15;19431:4;19428:1;19421:15;19448:185;19488:1;19505:20;19523:1;19505:20;:::i;:::-;19500:25;;19539:20;19557:1;19539:20;:::i;:::-;19534:25;;19578:1;19568:35;;19583:18;;:::i;:::-;19568:35;19625:1;19622;19618:9;19613:14;;19448:185;;;;:::o;19639:220::-;19779:34;19775:1;19767:6;19763:14;19756:58;19848:3;19843:2;19835:6;19831:15;19824:28;19639:220;:::o;19865:366::-;20007:3;20028:67;20092:2;20087:3;20028:67;:::i;:::-;20021:74;;20104:93;20193:3;20104:93;:::i;:::-;20222:2;20217:3;20213:12;20206:19;;19865:366;;;:::o;20237:419::-;20403:4;20441:2;20430:9;20426:18;20418:26;;20490:9;20484:4;20480:20;20476:1;20465:9;20461:17;20454:47;20518:131;20644:4;20518:131;:::i;:::-;20510:139;;20237:419;;;:::o;20662:223::-;20802:34;20798:1;20790:6;20786:14;20779:58;20871:6;20866:2;20858:6;20854:15;20847:31;20662:223;:::o;20891:366::-;21033:3;21054:67;21118:2;21113:3;21054:67;:::i;:::-;21047:74;;21130:93;21219:3;21130:93;:::i;:::-;21248:2;21243:3;21239:12;21232:19;;20891:366;;;:::o;21263:419::-;21429:4;21467:2;21456:9;21452:18;21444:26;;21516:9;21510:4;21506:20;21502:1;21491:9;21487:17;21480:47;21544:131;21670:4;21544:131;:::i;:::-;21536:139;;21263:419;;;:::o;21688:221::-;21828:34;21824:1;21816:6;21812:14;21805:58;21897:4;21892:2;21884:6;21880:15;21873:29;21688:221;:::o;21915:366::-;22057:3;22078:67;22142:2;22137:3;22078:67;:::i;:::-;22071:74;;22154:93;22243:3;22154:93;:::i;:::-;22272:2;22267:3;22263:12;22256:19;;21915:366;;;:::o;22287:419::-;22453:4;22491:2;22480:9;22476:18;22468:26;;22540:9;22534:4;22530:20;22526:1;22515:9;22511:17;22504:47;22568:131;22694:4;22568:131;:::i;:::-;22560:139;;22287:419;;;:::o;22712:224::-;22852:34;22848:1;22840:6;22836:14;22829:58;22921:7;22916:2;22908:6;22904:15;22897:32;22712:224;:::o;22942:366::-;23084:3;23105:67;23169:2;23164:3;23105:67;:::i;:::-;23098:74;;23181:93;23270:3;23181:93;:::i;:::-;23299:2;23294:3;23290:12;23283:19;;22942:366;;;:::o;23314:419::-;23480:4;23518:2;23507:9;23503:18;23495:26;;23567:9;23561:4;23557:20;23553:1;23542:9;23538:17;23531:47;23595:131;23721:4;23595:131;:::i;:::-;23587:139;;23314:419;;;:::o;23739:222::-;23879:34;23875:1;23867:6;23863:14;23856:58;23948:5;23943:2;23935:6;23931:15;23924:30;23739:222;:::o;23967:366::-;24109:3;24130:67;24194:2;24189:3;24130:67;:::i;:::-;24123:74;;24206:93;24295:3;24206:93;:::i;:::-;24324:2;24319:3;24315:12;24308:19;;23967:366;;;:::o;24339:419::-;24505:4;24543:2;24532:9;24528:18;24520:26;;24592:9;24586:4;24582:20;24578:1;24567:9;24563:17;24556:47;24620:131;24746:4;24620:131;:::i;:::-;24612:139;;24339:419;;;:::o;24764:228::-;24904:34;24900:1;24892:6;24888:14;24881:58;24973:11;24968:2;24960:6;24956:15;24949:36;24764:228;:::o;24998:366::-;25140:3;25161:67;25225:2;25220:3;25161:67;:::i;:::-;25154:74;;25237:93;25326:3;25237:93;:::i;:::-;25355:2;25350:3;25346:12;25339:19;;24998:366;;;:::o;25370:419::-;25536:4;25574:2;25563:9;25559:18;25551:26;;25623:9;25617:4;25613:20;25609:1;25598:9;25594:17;25587:47;25651:131;25777:4;25651:131;:::i;:::-;25643:139;;25370:419;;;:::o;25795:166::-;25935:18;25931:1;25923:6;25919:14;25912:42;25795:166;:::o;25967:366::-;26109:3;26130:67;26194:2;26189:3;26130:67;:::i;:::-;26123:74;;26206:93;26295:3;26206:93;:::i;:::-;26324:2;26319:3;26315:12;26308:19;;25967:366;;;:::o;26339:419::-;26505:4;26543:2;26532:9;26528:18;26520:26;;26592:9;26586:4;26582:20;26578:1;26567:9;26563:17;26556:47;26620:131;26746:4;26620:131;:::i;:::-;26612:139;;26339:419;;;:::o;26764:194::-;26804:4;26824:20;26842:1;26824:20;:::i;:::-;26819:25;;26858:20;26876:1;26858:20;:::i;:::-;26853:25;;26902:1;26899;26895:9;26887:17;;26926:1;26920:4;26917:11;26914:37;;;26931:18;;:::i;:::-;26914:37;26764:194;;;;:::o;26964:143::-;27021:5;27052:6;27046:13;27037:22;;27068:33;27095:5;27068:33;:::i;:::-;26964:143;;;;:::o;27113:351::-;27183:6;27232:2;27220:9;27211:7;27207:23;27203:32;27200:119;;;27238:79;;:::i;:::-;27200:119;27358:1;27383:64;27439:7;27430:6;27419:9;27415:22;27383:64;:::i;:::-;27373:74;;27329:128;27113:351;;;;:::o;27470:85::-;27515:7;27544:5;27533:16;;27470:85;;;:::o;27561:158::-;27619:9;27652:61;27670:42;27679:32;27705:5;27679:32;:::i;:::-;27670:42;:::i;:::-;27652:61;:::i;:::-;27639:74;;27561:158;;;:::o;27725:147::-;27820:45;27859:5;27820:45;:::i;:::-;27815:3;27808:58;27725:147;;:::o;27878:114::-;27945:6;27979:5;27973:12;27963:22;;27878:114;;;:::o;27998:184::-;28097:11;28131:6;28126:3;28119:19;28171:4;28166:3;28162:14;28147:29;;27998:184;;;;:::o;28188:132::-;28255:4;28278:3;28270:11;;28308:4;28303:3;28299:14;28291:22;;28188:132;;;:::o;28326:108::-;28403:24;28421:5;28403:24;:::i;:::-;28398:3;28391:37;28326:108;;:::o;28440:179::-;28509:10;28530:46;28572:3;28564:6;28530:46;:::i;:::-;28608:4;28603:3;28599:14;28585:28;;28440:179;;;;:::o;28625:113::-;28695:4;28727;28722:3;28718:14;28710:22;;28625:113;;;:::o;28774:732::-;28893:3;28922:54;28970:5;28922:54;:::i;:::-;28992:86;29071:6;29066:3;28992:86;:::i;:::-;28985:93;;29102:56;29152:5;29102:56;:::i;:::-;29181:7;29212:1;29197:284;29222:6;29219:1;29216:13;29197:284;;;29298:6;29292:13;29325:63;29384:3;29369:13;29325:63;:::i;:::-;29318:70;;29411:60;29464:6;29411:60;:::i;:::-;29401:70;;29257:224;29244:1;29241;29237:9;29232:14;;29197:284;;;29201:14;29497:3;29490:10;;28898:608;;;28774:732;;;;:::o;29512:831::-;29775:4;29813:3;29802:9;29798:19;29790:27;;29827:71;29895:1;29884:9;29880:17;29871:6;29827:71;:::i;:::-;29908:80;29984:2;29973:9;29969:18;29960:6;29908:80;:::i;:::-;30035:9;30029:4;30025:20;30020:2;30009:9;30005:18;29998:48;30063:108;30166:4;30157:6;30063:108;:::i;:::-;30055:116;;30181:72;30249:2;30238:9;30234:18;30225:6;30181:72;:::i;:::-;30263:73;30331:3;30320:9;30316:19;30307:6;30263:73;:::i;:::-;29512:831;;;;;;;;:::o;30349:807::-;30598:4;30636:3;30625:9;30621:19;30613:27;;30650:71;30718:1;30707:9;30703:17;30694:6;30650:71;:::i;:::-;30731:72;30799:2;30788:9;30784:18;30775:6;30731:72;:::i;:::-;30813:80;30889:2;30878:9;30874:18;30865:6;30813:80;:::i;:::-;30903;30979:2;30968:9;30964:18;30955:6;30903:80;:::i;:::-;30993:73;31061:3;31050:9;31046:19;31037:6;30993:73;:::i;:::-;31076;31144:3;31133:9;31129:19;31120:6;31076:73;:::i;:::-;30349:807;;;;;;;;;:::o;31162:663::-;31250:6;31258;31266;31315:2;31303:9;31294:7;31290:23;31286:32;31283:119;;;31321:79;;:::i;:::-;31283:119;31441:1;31466:64;31522:7;31513:6;31502:9;31498:22;31466:64;:::i;:::-;31456:74;;31412:128;31579:2;31605:64;31661:7;31652:6;31641:9;31637:22;31605:64;:::i;:::-;31595:74;;31550:129;31718:2;31744:64;31800:7;31791:6;31780:9;31776:22;31744:64;:::i;:::-;31734:74;;31689:129;31162:663;;;;;:::o;31831:177::-;31971:29;31967:1;31959:6;31955:14;31948:53;31831:177;:::o;32014:366::-;32156:3;32177:67;32241:2;32236:3;32177:67;:::i;:::-;32170:74;;32253:93;32342:3;32253:93;:::i;:::-;32371:2;32366:3;32362:12;32355:19;;32014:366;;;:::o;32386:419::-;32552:4;32590:2;32579:9;32575:18;32567:26;;32639:9;32633:4;32629:20;32625:1;32614:9;32610:17;32603:47;32667:131;32793:4;32667:131;:::i;:::-;32659:139;;32386:419;;;:::o
Swarm Source
ipfs://31a8ed20e0c3bce32a26734335ef9e9c427c2d2a733396ae8acb52444c81e027
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.