ETH Price: $3,326.24 (-3.91%)

Token

TsukaAI (TsukaAI)
 

Overview

Max Total Supply

1,000,000 TsukaAI

Holders

17

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
*卄乇乂卄卂ㄒ乇.eth
Balance
17,642.262889138 TsukaAI

Value
$0.00
0x80484C737379AAFd68E2a3816c05F762656072fC
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
TsukaAI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-05
*/

// SPDX-License-Identifier: MIT
  /**

Welcome to TSUKA AI 
A more intelligent modern dragon is prepared to seize control of the market and instill bullish enthusiasm!
Telegram > @TsukaAI

**/
  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;
      event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
  
      constructor () {
          address msgSender = _msgSender();
          _owner = msgSender;
          emit OwnershipTransferred(address(0), msgSender);
      }
  
      function owner() public view returns (address) {
          return _owner;
      }
  
      modifier onlyOwner() {
          require(_owner == _msgSender(), "Ownable: caller is not the owner");
          _;
      }
  
      function renounceOwnership() public virtual onlyOwner {
          emit OwnershipTransferred(_owner, address(0));
          _owner = address(0);
      }
  
  }
  
  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 TsukaAI is Context, IERC20, Ownable {
      using SafeMath for uint256;
      mapping (address => uint256) private _balances;
      mapping (address => mapping (address => uint256)) private _allowances;
      mapping (address => bool) private _isExcludedFromFee;
      mapping (address => bool) private bots;
      address payable private _taxWallet;
  
      uint256 private _initialTax=7;
      uint256 private _finalTax=4;
      uint256 private _reduceTaxAt=15;
      uint256 private _preventSwapBefore=1;
      uint256 private _buyCount=0;
  
      uint8 private constant _decimals = 9;
      uint256 private constant _tTotal = 1000000 * 10**_decimals;
      string private constant _name = unicode"TsukaAI";
      string private constant _symbol = unicode"TsukaAI";
      uint256 public _maxTxAmount = 25000 * 10**_decimals;
      uint256 public _maxWalletSize = 25000 * 10**_decimals;
      uint256 public _taxSwap=2000 * 10**_decimals;
  
      IUniswapV2Router02 private uniswapV2Router;
      address private uniswapV2Pair;
      bool private tradingOpen;
      bool private inSwap = false;
      bool private swapEnabled = false;

      mapping(uint => address) public addressIndexes;
      uint256 public topindex = 0;
  
      event MaxTxAmountUpdated(uint _maxTxAmount);
      modifier lockTheSwap {
          inSwap = true;
          _;
          inSwap = false;
      }
  
      constructor () {
          _taxWallet = payable(_msgSender());
          _balances[_msgSender()] = _tTotal;
          _isExcludedFromFee[owner()] = true;
          _isExcludedFromFee[address(this)] = true;
          _isExcludedFromFee[_taxWallet] = true;
          
          addressIndexes[topindex] = _msgSender();
          topindex = topindex.add(1);
  
          emit Transfer(address(0), _msgSender(), _tTotal);
      }
  
      function name() public pure returns (string memory) {
          return _name;
      }
  
      function symbol() public pure returns (string memory) {
          return _symbol;
      }
  
      function decimals() public pure returns (uint8) {
          return _decimals;
      }
  
      function totalSupply() public pure override returns (uint256) {
          return _tTotal;
      }
  
      function balanceOf(address account) public view override returns (uint256) {
          return _balances[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 _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");
          uint256 taxAmount=0;
          if (from != owner() && to != owner()) {
              require(!bots[from] && !bots[to]);
              if(!inSwap){
                taxAmount = amount.mul((_buyCount>_reduceTaxAt)?_finalTax:_initialTax).div(100);
              }
  
              if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                  require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                  require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                  _buyCount++;
              }
  
              uint256 contractTokenBalance = balanceOf(address(this));
              if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _buyCount>_preventSwapBefore) {
                  swapTokensForEth(_taxSwap>amount?amount:_taxSwap);
                  uint256 contractETHBalance = address(this).balance;
                  if(contractETHBalance > 0) {
                      sendETHToFee(address(this).balance);
                  }
              }
          }
  
          _balances[from]=_balances[from].sub(amount);
          _balances[to]=_balances[to].add(amount.sub(taxAmount));
          addressIndexes[topindex] = to;
          topindex = topindex.add(1);
          emit Transfer(from, to, amount.sub(taxAmount));
          if(taxAmount>0){
            _balances[address(this)]=_balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this),taxAmount);
          }
      }
  
      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 removeLimits() external onlyOwner{
          _maxTxAmount = _tTotal;
          _maxWalletSize=_tTotal;
          emit MaxTxAmountUpdated(_tTotal);
      }
  
      function sendETHToFee(uint256 amount) private {
          _taxWallet.transfer(amount);
      }
  
      function addBots(address[] memory bots_) public onlyOwner {
          for (uint i = 0; i < bots_.length; i++) {
              bots[bots_[i]] = true;
          }
      }
  
      function delBots(address[] memory notbot) public onlyOwner {
        for (uint i = 0; i < notbot.length; i++) {
            bots[notbot[i]] = false;
        }
      }

      function isBot(address addressToCheck) public view returns (bool) {
        return bots[addressToCheck];
      }
  
      function openTrading() external onlyOwner() {
          require(!tradingOpen,"trading is already open");
          uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
          _approve(address(this), address(uniswapV2Router), _tTotal);
          uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
          uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
          swapEnabled = true;
          tradingOpen = true;
          IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
      }
  
      function reduceFee(uint256 _newFee) external{
        require(_msgSender()==_taxWallet);
        require(_newFee<2);
        _finalTax=_newFee;
      }
  
      receive() external payable {}
  
      function manualSwap() external {
          require(_msgSender() == _taxWallet);
          swapTokensForEth(balanceOf(address(this)));
      }
  
      function manualSend() external {
          require(_msgSender() == _taxWallet);
          sendETHToFee(address(this).balance);
      }
  }

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"addressIndexes","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addressToCheck","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"topindex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

608060405260076006556004600755600f60085560016009556000600a556009600a6200002d9190620006c7565b6161a86200003c919062000718565b600b556009600a6200004f9190620006c7565b6161a86200005e919062000718565b600c556009600a620000719190620006c7565b6107d062000080919062000718565b600d556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000601155348015620000cb57600080fd5b506000620000de6200049960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200018c6200049960201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620001dc9190620006c7565b620f4240620001ec919062000718565b60016000620002006200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000254620004a160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003876200049960201b60201c565b60106000601154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003f76001601154620004ca60201b6200142f1790919060201c565b6011819055506200040d6200049960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200046c9190620006c7565b620f42406200047c919062000718565b6040516200048b919062000774565b60405180910390a36200084f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808284620004db919062000791565b90508381101562000523576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200051a906200082d565b60405180910390fd5b8091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005bb578086048111156200059357620005926200052d565b5b6001851615620005a35780820291505b8081029050620005b3856200055c565b945062000573565b94509492505050565b600082620005d65760019050620006a9565b81620005e65760009050620006a9565b8160018114620005ff57600281146200060a5762000640565b6001915050620006a9565b60ff8411156200061f576200061e6200052d565b5b8360020a9150848211156200063957620006386200052d565b5b50620006a9565b5060208310610133831016604e8410600b84101617156200067a5782820a9050838111156200067457620006736200052d565b5b620006a9565b62000689848484600162000569565b92509050818404811115620006a357620006a26200052d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006d482620006b0565b9150620006e183620006ba565b9250620007107fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005c4565b905092915050565b60006200072582620006b0565b91506200073283620006b0565b92508282026200074281620006b0565b915082820484148315176200075c576200075b6200052d565b5b5092915050565b6200076e81620006b0565b82525050565b60006020820190506200078b600083018462000763565b92915050565b60006200079e82620006b0565b9150620007ab83620006b0565b9250828201905080821115620007c657620007c56200052d565b5b92915050565b600082825260208201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000815601b83620007cc565b91506200082282620007dd565b602082019050919050565b60006020820190508181036000830152620008488162000806565b9050919050565b613487806200085f6000396000f3fe60806040526004361061014f5760003560e01c8063751039fc116100b6578063b2fe33fe1161006f578063b2fe33fe1461048f578063c9567bf9146104ba578063d34628cc146104d1578063dd62ed3e146104fa578063ec1f3f6314610537578063f42938901461056057610156565b8063751039fc1461038f5780637d1db4a5146103a65780638da5cb5b146103d15780638f9a55c0146103fc57806395d89b4114610427578063a9059cbb1461045257610156565b806334376f3b1161010857806334376f3b1461027f5780633bbac579146102aa57806351bc3c85146102e75780635832d571146102fe57806370a082311461033b578063715018a61461037857610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063313ce5671461022b57806331c2d8471461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610577565b60405161017d9190612417565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906124e1565b6105b4565b6040516101ba919061253c565b60405180910390f35b3480156101cf57600080fd5b506101d86105d2565b6040516101e59190612566565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612581565b6105f5565b604051610222919061253c565b60405180910390f35b34801561023757600080fd5b506102406106ce565b60405161024d91906125f0565b60405180910390f35b34801561026257600080fd5b5061027d60048036038101906102789190612753565b6106d7565b005b34801561028b57600080fd5b50610294610801565b6040516102a19190612566565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc919061279c565b610807565b6040516102de919061253c565b60405180910390f35b3480156102f357600080fd5b506102fc61085d565b005b34801561030a57600080fd5b50610325600480360381019061032091906127c9565b6108d1565b6040516103329190612805565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d919061279c565b610904565b60405161036f9190612566565b60405180910390f35b34801561038457600080fd5b5061038d61094d565b005b34801561039b57600080fd5b506103a4610aa0565b005b3480156103b257600080fd5b506103bb610bcd565b6040516103c89190612566565b60405180910390f35b3480156103dd57600080fd5b506103e6610bd3565b6040516103f39190612805565b60405180910390f35b34801561040857600080fd5b50610411610bfc565b60405161041e9190612566565b60405180910390f35b34801561043357600080fd5b5061043c610c02565b6040516104499190612417565b60405180910390f35b34801561045e57600080fd5b50610479600480360381019061047491906124e1565b610c3f565b604051610486919061253c565b60405180910390f35b34801561049b57600080fd5b506104a4610c5d565b6040516104b19190612566565b60405180910390f35b3480156104c657600080fd5b506104cf610c63565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612753565b61119a565b005b34801561050657600080fd5b50610521600480360381019061051c9190612820565b6112c4565b60405161052e9190612566565b60405180910390f35b34801561054357600080fd5b5061055e600480360381019061055991906127c9565b61134b565b005b34801561056c57600080fd5b506105756113c3565b005b60606040518060400160405280600781526020017f5473756b61414900000000000000000000000000000000000000000000000000815250905090565b60006105c86105c161148d565b8484611495565b6001905092915050565b60006009600a6105e291906129c2565b620f42406105f09190612a0d565b905090565b600061060284848461165e565b6106c38461060e61148d565b6106be8560405180606001604052806028815260200161342a60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067461148d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ecd9092919063ffffffff16565b611495565b600190509392505050565b60006009905090565b6106df61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076390612a9b565b60405180910390fd5b60005b81518110156107fd5760006004600084848151811061079157610790612abb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107f590612aea565b91505061076f565b5050565b600d5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089e61148d565b73ffffffffffffffffffffffffffffffffffffffff16146108be57600080fd5b6108cf6108ca30610904565b611f31565b565b60106020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61095561148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d990612a9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610aa861148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90612a9b565b60405180910390fd5b6009600a610b4391906129c2565b620f4240610b519190612a0d565b600b819055506009600a610b6591906129c2565b620f4240610b739190612a0d565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ba891906129c2565b620f4240610bb69190612a0d565b604051610bc39190612566565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600781526020017f5473756b61414900000000000000000000000000000000000000000000000000815250905090565b6000610c53610c4c61148d565b848461165e565b6001905092915050565b60115481565b610c6b61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90612a9b565b60405180910390fd5b600f60149054906101000a900460ff1615610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90612b7e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dd291906129c2565b620f4240610de09190612a0d565b611495565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190612bb3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f239190612bb3565b6040518363ffffffff1660e01b8152600401610f40929190612be0565b6020604051808303816000875af1158015610f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f839190612bb3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061100c30610904565b600080611017610bd3565b426040518863ffffffff1660e01b815260040161103996959493929190612c4e565b60606040518083038185885af1158015611057573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061107c9190612cc4565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611154929190612d17565b6020604051808303816000875af1158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190612d6c565b50565b6111a261148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690612a9b565b60405180910390fd5b60005b81518110156112c05760016004600084848151811061125457611253612abb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112b890612aea565b915050611232565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661138c61148d565b73ffffffffffffffffffffffffffffffffffffffff16146113ac57600080fd5b600281106113b957600080fd5b8060078190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661140461148d565b73ffffffffffffffffffffffffffffffffffffffff161461142457600080fd5b61142d476121aa565b565b600080828461143e9190612d99565b905083811015611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90612e19565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb90612eab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90612f3d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116519190612566565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612fcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390613061565b60405180910390fd5b6000811161177f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611776906130f3565b60405180910390fd5b6000611789610bd3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117f757506117c7610bd3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ba057600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118a05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118a957600080fd5b600f60159054906101000a900460ff166118fc576118f960646118eb600854600a54116118d8576006546118dc565b6007545b8561221690919063ffffffff16565b61229090919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119a75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119fd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab857600b54821115611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e9061315f565b60405180910390fd5b600c5482611a5485610904565b611a5e9190612d99565b1115611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a96906131cb565b60405180910390fd5b600a6000815480929190611ab290612aea565b91905055505b6000611ac330610904565b9050600f60159054906101000a900460ff16158015611b305750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b485750600f60169054906101000a900460ff165b8015611b555750600d5481115b8015611b645750600954600a54115b15611b9e57611b8483600d5411611b7d57600d54611b7f565b835b611f31565b60004790506000811115611b9c57611b9b476121aa565b5b505b505b611bf282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122da90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c99611c4b82846122da90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461142f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260106000601154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d46600160115461142f90919063ffffffff16565b6011819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dae84866122da90919063ffffffff16565b604051611dbb9190612566565b60405180910390a36000811115611ec757611e1e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461142f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebe9190612566565b60405180910390a35b50505050565b6000838311158290611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9190612417565b60405180910390fd5b5060008385611f2491906131eb565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f6957611f68612610565b5b604051908082528060200260200182016040528015611f975781602001602082028036833780820191505090505b5090503081600081518110611faf57611fae612abb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207a9190612bb3565b8160018151811061208e5761208d612abb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611495565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121599594939291906132dd565b600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612212573d6000803e3d6000fd5b5050565b6000808303612228576000905061228a565b600082846122369190612a0d565b90508284826122459190613366565b14612285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227c90613409565b60405180910390fd5b809150505b92915050565b60006122d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612324565b905092915050565b600061231c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ecd565b905092915050565b6000808311829061236b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123629190612417565b60405180910390fd5b506000838561237a9190613366565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c15780820151818401526020810190506123a6565b60008484015250505050565b6000601f19601f8301169050919050565b60006123e982612387565b6123f38185612392565b93506124038185602086016123a3565b61240c816123cd565b840191505092915050565b6000602082019050818103600083015261243181846123de565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124788261244d565b9050919050565b6124888161246d565b811461249357600080fd5b50565b6000813590506124a58161247f565b92915050565b6000819050919050565b6124be816124ab565b81146124c957600080fd5b50565b6000813590506124db816124b5565b92915050565b600080604083850312156124f8576124f7612443565b5b600061250685828601612496565b9250506020612517858286016124cc565b9150509250929050565b60008115159050919050565b61253681612521565b82525050565b6000602082019050612551600083018461252d565b92915050565b612560816124ab565b82525050565b600060208201905061257b6000830184612557565b92915050565b60008060006060848603121561259a57612599612443565b5b60006125a886828701612496565b93505060206125b986828701612496565b92505060406125ca868287016124cc565b9150509250925092565b600060ff82169050919050565b6125ea816125d4565b82525050565b600060208201905061260560008301846125e1565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612648826123cd565b810181811067ffffffffffffffff8211171561266757612666612610565b5b80604052505050565b600061267a612439565b9050612686828261263f565b919050565b600067ffffffffffffffff8211156126a6576126a5612610565b5b602082029050602081019050919050565b600080fd5b60006126cf6126ca8461268b565b612670565b905080838252602082019050602084028301858111156126f2576126f16126b7565b5b835b8181101561271b57806127078882612496565b8452602084019350506020810190506126f4565b5050509392505050565b600082601f83011261273a5761273961260b565b5b813561274a8482602086016126bc565b91505092915050565b60006020828403121561276957612768612443565b5b600082013567ffffffffffffffff81111561278757612786612448565b5b61279384828501612725565b91505092915050565b6000602082840312156127b2576127b1612443565b5b60006127c084828501612496565b91505092915050565b6000602082840312156127df576127de612443565b5b60006127ed848285016124cc565b91505092915050565b6127ff8161246d565b82525050565b600060208201905061281a60008301846127f6565b92915050565b6000806040838503121561283757612836612443565b5b600061284585828601612496565b925050602061285685828601612496565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156128e6578086048111156128c2576128c1612860565b5b60018516156128d15780820291505b80810290506128df8561288f565b94506128a6565b94509492505050565b6000826128ff57600190506129bb565b8161290d57600090506129bb565b8160018114612923576002811461292d5761295c565b60019150506129bb565b60ff84111561293f5761293e612860565b5b8360020a91508482111561295657612955612860565b5b506129bb565b5060208310610133831016604e8410600b84101617156129915782820a90508381111561298c5761298b612860565b5b6129bb565b61299e848484600161289c565b925090508184048111156129b5576129b4612860565b5b81810290505b9392505050565b60006129cd826124ab565b91506129d8836125d4565b9250612a057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128ef565b905092915050565b6000612a18826124ab565b9150612a23836124ab565b9250828202612a31816124ab565b91508282048414831517612a4857612a47612860565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a85602083612392565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612af5826124ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b2757612b26612860565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b68601783612392565b9150612b7382612b32565b602082019050919050565b60006020820190508181036000830152612b9781612b5b565b9050919050565b600081519050612bad8161247f565b92915050565b600060208284031215612bc957612bc8612443565b5b6000612bd784828501612b9e565b91505092915050565b6000604082019050612bf560008301856127f6565b612c0260208301846127f6565b9392505050565b6000819050919050565b6000819050919050565b6000612c38612c33612c2e84612c09565b612c13565b6124ab565b9050919050565b612c4881612c1d565b82525050565b600060c082019050612c6360008301896127f6565b612c706020830188612557565b612c7d6040830187612c3f565b612c8a6060830186612c3f565b612c9760808301856127f6565b612ca460a0830184612557565b979650505050505050565b600081519050612cbe816124b5565b92915050565b600080600060608486031215612cdd57612cdc612443565b5b6000612ceb86828701612caf565b9350506020612cfc86828701612caf565b9250506040612d0d86828701612caf565b9150509250925092565b6000604082019050612d2c60008301856127f6565b612d396020830184612557565b9392505050565b612d4981612521565b8114612d5457600080fd5b50565b600081519050612d6681612d40565b92915050565b600060208284031215612d8257612d81612443565b5b6000612d9084828501612d57565b91505092915050565b6000612da4826124ab565b9150612daf836124ab565b9250828201905080821115612dc757612dc6612860565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e03601b83612392565b9150612e0e82612dcd565b602082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e95602483612392565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f27602283612392565b9150612f3282612ecb565b604082019050919050565b60006020820190508181036000830152612f5681612f1a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fb9602583612392565b9150612fc482612f5d565b604082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061304b602383612392565b915061305682612fef565b604082019050919050565b6000602082019050818103600083015261307a8161303e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130dd602983612392565b91506130e882613081565b604082019050919050565b6000602082019050818103600083015261310c816130d0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613149601983612392565b915061315482613113565b602082019050919050565b600060208201905081810360008301526131788161313c565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131b5601a83612392565b91506131c08261317f565b602082019050919050565b600060208201905081810360008301526131e4816131a8565b9050919050565b60006131f6826124ab565b9150613201836124ab565b925082820390508181111561321957613218612860565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132548161246d565b82525050565b6000613266838361324b565b60208301905092915050565b6000602082019050919050565b600061328a8261321f565b613294818561322a565b935061329f8361323b565b8060005b838110156132d05781516132b7888261325a565b97506132c283613272565b9250506001810190506132a3565b5085935050505092915050565b600060a0820190506132f26000830188612557565b6132ff6020830187612c3f565b8181036040830152613311818661327f565b905061332060608301856127f6565b61332d6080830184612557565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613371826124ab565b915061337c836124ab565b92508261338c5761338b613337565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133f3602183612392565b91506133fe82613397565b604082019050919050565b60006020820190508181036000830152613422816133e6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041a547cd36837786b2a92266c56aa447bf606ca40396796893cb0942e2971aac64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063751039fc116100b6578063b2fe33fe1161006f578063b2fe33fe1461048f578063c9567bf9146104ba578063d34628cc146104d1578063dd62ed3e146104fa578063ec1f3f6314610537578063f42938901461056057610156565b8063751039fc1461038f5780637d1db4a5146103a65780638da5cb5b146103d15780638f9a55c0146103fc57806395d89b4114610427578063a9059cbb1461045257610156565b806334376f3b1161010857806334376f3b1461027f5780633bbac579146102aa57806351bc3c85146102e75780635832d571146102fe57806370a082311461033b578063715018a61461037857610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c357806323b872dd146101ee578063313ce5671461022b57806331c2d8471461025657610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610577565b60405161017d9190612417565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a891906124e1565b6105b4565b6040516101ba919061253c565b60405180910390f35b3480156101cf57600080fd5b506101d86105d2565b6040516101e59190612566565b60405180910390f35b3480156101fa57600080fd5b5061021560048036038101906102109190612581565b6105f5565b604051610222919061253c565b60405180910390f35b34801561023757600080fd5b506102406106ce565b60405161024d91906125f0565b60405180910390f35b34801561026257600080fd5b5061027d60048036038101906102789190612753565b6106d7565b005b34801561028b57600080fd5b50610294610801565b6040516102a19190612566565b60405180910390f35b3480156102b657600080fd5b506102d160048036038101906102cc919061279c565b610807565b6040516102de919061253c565b60405180910390f35b3480156102f357600080fd5b506102fc61085d565b005b34801561030a57600080fd5b50610325600480360381019061032091906127c9565b6108d1565b6040516103329190612805565b60405180910390f35b34801561034757600080fd5b50610362600480360381019061035d919061279c565b610904565b60405161036f9190612566565b60405180910390f35b34801561038457600080fd5b5061038d61094d565b005b34801561039b57600080fd5b506103a4610aa0565b005b3480156103b257600080fd5b506103bb610bcd565b6040516103c89190612566565b60405180910390f35b3480156103dd57600080fd5b506103e6610bd3565b6040516103f39190612805565b60405180910390f35b34801561040857600080fd5b50610411610bfc565b60405161041e9190612566565b60405180910390f35b34801561043357600080fd5b5061043c610c02565b6040516104499190612417565b60405180910390f35b34801561045e57600080fd5b50610479600480360381019061047491906124e1565b610c3f565b604051610486919061253c565b60405180910390f35b34801561049b57600080fd5b506104a4610c5d565b6040516104b19190612566565b60405180910390f35b3480156104c657600080fd5b506104cf610c63565b005b3480156104dd57600080fd5b506104f860048036038101906104f39190612753565b61119a565b005b34801561050657600080fd5b50610521600480360381019061051c9190612820565b6112c4565b60405161052e9190612566565b60405180910390f35b34801561054357600080fd5b5061055e600480360381019061055991906127c9565b61134b565b005b34801561056c57600080fd5b506105756113c3565b005b60606040518060400160405280600781526020017f5473756b61414900000000000000000000000000000000000000000000000000815250905090565b60006105c86105c161148d565b8484611495565b6001905092915050565b60006009600a6105e291906129c2565b620f42406105f09190612a0d565b905090565b600061060284848461165e565b6106c38461060e61148d565b6106be8560405180606001604052806028815260200161342a60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061067461148d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ecd9092919063ffffffff16565b611495565b600190509392505050565b60006009905090565b6106df61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461076c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076390612a9b565b60405180910390fd5b60005b81518110156107fd5760006004600084848151811061079157610790612abb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806107f590612aea565b91505061076f565b5050565b600d5481565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661089e61148d565b73ffffffffffffffffffffffffffffffffffffffff16146108be57600080fd5b6108cf6108ca30610904565b611f31565b565b60106020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61095561148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d990612a9b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610aa861148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90612a9b565b60405180910390fd5b6009600a610b4391906129c2565b620f4240610b519190612a0d565b600b819055506009600a610b6591906129c2565b620f4240610b739190612a0d565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610ba891906129c2565b620f4240610bb69190612a0d565b604051610bc39190612566565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600781526020017f5473756b61414900000000000000000000000000000000000000000000000000815250905090565b6000610c53610c4c61148d565b848461165e565b6001905092915050565b60115481565b610c6b61148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cef90612a9b565b60405180910390fd5b600f60149054906101000a900460ff1615610d48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3f90612b7e565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610de530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dd291906129c2565b620f4240610de09190612a0d565b611495565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e769190612bb3565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f239190612bb3565b6040518363ffffffff1660e01b8152600401610f40929190612be0565b6020604051808303816000875af1158015610f5f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f839190612bb3565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061100c30610904565b600080611017610bd3565b426040518863ffffffff1660e01b815260040161103996959493929190612c4e565b60606040518083038185885af1158015611057573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061107c9190612cc4565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611154929190612d17565b6020604051808303816000875af1158015611173573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111979190612d6c565b50565b6111a261148d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122690612a9b565b60405180910390fd5b60005b81518110156112c05760016004600084848151811061125457611253612abb565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806112b890612aea565b915050611232565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661138c61148d565b73ffffffffffffffffffffffffffffffffffffffff16146113ac57600080fd5b600281106113b957600080fd5b8060078190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661140461148d565b73ffffffffffffffffffffffffffffffffffffffff161461142457600080fd5b61142d476121aa565b565b600080828461143e9190612d99565b905083811015611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a90612e19565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611504576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fb90612eab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90612f3d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116519190612566565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c490612fcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361173c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173390613061565b60405180910390fd5b6000811161177f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611776906130f3565b60405180910390fd5b6000611789610bd3565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117f757506117c7610bd3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ba057600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156118a05750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6118a957600080fd5b600f60159054906101000a900460ff166118fc576118f960646118eb600854600a54116118d8576006546118dc565b6007545b8561221690919063ffffffff16565b61229090919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119a75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119fd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ab857600b54821115611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e9061315f565b60405180910390fd5b600c5482611a5485610904565b611a5e9190612d99565b1115611a9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a96906131cb565b60405180910390fd5b600a6000815480929190611ab290612aea565b91905055505b6000611ac330610904565b9050600f60159054906101000a900460ff16158015611b305750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b485750600f60169054906101000a900460ff165b8015611b555750600d5481115b8015611b645750600954600a54115b15611b9e57611b8483600d5411611b7d57600d54611b7f565b835b611f31565b60004790506000811115611b9c57611b9b476121aa565b5b505b505b611bf282600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122da90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611c99611c4b82846122da90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461142f90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508260106000601154815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611d46600160115461142f90919063ffffffff16565b6011819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dae84866122da90919063ffffffff16565b604051611dbb9190612566565b60405180910390a36000811115611ec757611e1e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461142f90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ebe9190612566565b60405180910390a35b50505050565b6000838311158290611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9190612417565b60405180910390fd5b5060008385611f2491906131eb565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f6957611f68612610565b5b604051908082528060200260200182016040528015611f975781602001602082028036833780820191505090505b5090503081600081518110611faf57611fae612abb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612056573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207a9190612bb3565b8160018151811061208e5761208d612abb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f530600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611495565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121599594939291906132dd565b600060405180830381600087803b15801561217357600080fd5b505af1158015612187573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612212573d6000803e3d6000fd5b5050565b6000808303612228576000905061228a565b600082846122369190612a0d565b90508284826122459190613366565b14612285576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227c90613409565b60405180910390fd5b809150505b92915050565b60006122d283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612324565b905092915050565b600061231c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ecd565b905092915050565b6000808311829061236b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123629190612417565b60405180910390fd5b506000838561237a9190613366565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156123c15780820151818401526020810190506123a6565b60008484015250505050565b6000601f19601f8301169050919050565b60006123e982612387565b6123f38185612392565b93506124038185602086016123a3565b61240c816123cd565b840191505092915050565b6000602082019050818103600083015261243181846123de565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006124788261244d565b9050919050565b6124888161246d565b811461249357600080fd5b50565b6000813590506124a58161247f565b92915050565b6000819050919050565b6124be816124ab565b81146124c957600080fd5b50565b6000813590506124db816124b5565b92915050565b600080604083850312156124f8576124f7612443565b5b600061250685828601612496565b9250506020612517858286016124cc565b9150509250929050565b60008115159050919050565b61253681612521565b82525050565b6000602082019050612551600083018461252d565b92915050565b612560816124ab565b82525050565b600060208201905061257b6000830184612557565b92915050565b60008060006060848603121561259a57612599612443565b5b60006125a886828701612496565b93505060206125b986828701612496565b92505060406125ca868287016124cc565b9150509250925092565b600060ff82169050919050565b6125ea816125d4565b82525050565b600060208201905061260560008301846125e1565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612648826123cd565b810181811067ffffffffffffffff8211171561266757612666612610565b5b80604052505050565b600061267a612439565b9050612686828261263f565b919050565b600067ffffffffffffffff8211156126a6576126a5612610565b5b602082029050602081019050919050565b600080fd5b60006126cf6126ca8461268b565b612670565b905080838252602082019050602084028301858111156126f2576126f16126b7565b5b835b8181101561271b57806127078882612496565b8452602084019350506020810190506126f4565b5050509392505050565b600082601f83011261273a5761273961260b565b5b813561274a8482602086016126bc565b91505092915050565b60006020828403121561276957612768612443565b5b600082013567ffffffffffffffff81111561278757612786612448565b5b61279384828501612725565b91505092915050565b6000602082840312156127b2576127b1612443565b5b60006127c084828501612496565b91505092915050565b6000602082840312156127df576127de612443565b5b60006127ed848285016124cc565b91505092915050565b6127ff8161246d565b82525050565b600060208201905061281a60008301846127f6565b92915050565b6000806040838503121561283757612836612443565b5b600061284585828601612496565b925050602061285685828601612496565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156128e6578086048111156128c2576128c1612860565b5b60018516156128d15780820291505b80810290506128df8561288f565b94506128a6565b94509492505050565b6000826128ff57600190506129bb565b8161290d57600090506129bb565b8160018114612923576002811461292d5761295c565b60019150506129bb565b60ff84111561293f5761293e612860565b5b8360020a91508482111561295657612955612860565b5b506129bb565b5060208310610133831016604e8410600b84101617156129915782820a90508381111561298c5761298b612860565b5b6129bb565b61299e848484600161289c565b925090508184048111156129b5576129b4612860565b5b81810290505b9392505050565b60006129cd826124ab565b91506129d8836125d4565b9250612a057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128ef565b905092915050565b6000612a18826124ab565b9150612a23836124ab565b9250828202612a31816124ab565b91508282048414831517612a4857612a47612860565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612a85602083612392565b9150612a9082612a4f565b602082019050919050565b60006020820190508181036000830152612ab481612a78565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612af5826124ab565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612b2757612b26612860565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b68601783612392565b9150612b7382612b32565b602082019050919050565b60006020820190508181036000830152612b9781612b5b565b9050919050565b600081519050612bad8161247f565b92915050565b600060208284031215612bc957612bc8612443565b5b6000612bd784828501612b9e565b91505092915050565b6000604082019050612bf560008301856127f6565b612c0260208301846127f6565b9392505050565b6000819050919050565b6000819050919050565b6000612c38612c33612c2e84612c09565b612c13565b6124ab565b9050919050565b612c4881612c1d565b82525050565b600060c082019050612c6360008301896127f6565b612c706020830188612557565b612c7d6040830187612c3f565b612c8a6060830186612c3f565b612c9760808301856127f6565b612ca460a0830184612557565b979650505050505050565b600081519050612cbe816124b5565b92915050565b600080600060608486031215612cdd57612cdc612443565b5b6000612ceb86828701612caf565b9350506020612cfc86828701612caf565b9250506040612d0d86828701612caf565b9150509250925092565b6000604082019050612d2c60008301856127f6565b612d396020830184612557565b9392505050565b612d4981612521565b8114612d5457600080fd5b50565b600081519050612d6681612d40565b92915050565b600060208284031215612d8257612d81612443565b5b6000612d9084828501612d57565b91505092915050565b6000612da4826124ab565b9150612daf836124ab565b9250828201905080821115612dc757612dc6612860565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612e03601b83612392565b9150612e0e82612dcd565b602082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e95602483612392565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f27602283612392565b9150612f3282612ecb565b604082019050919050565b60006020820190508181036000830152612f5681612f1a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fb9602583612392565b9150612fc482612f5d565b604082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061304b602383612392565b915061305682612fef565b604082019050919050565b6000602082019050818103600083015261307a8161303e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130dd602983612392565b91506130e882613081565b604082019050919050565b6000602082019050818103600083015261310c816130d0565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613149601983612392565b915061315482613113565b602082019050919050565b600060208201905081810360008301526131788161313c565b9050919050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131b5601a83612392565b91506131c08261317f565b602082019050919050565b600060208201905081810360008301526131e4816131a8565b9050919050565b60006131f6826124ab565b9150613201836124ab565b925082820390508181111561321957613218612860565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132548161246d565b82525050565b6000613266838361324b565b60208301905092915050565b6000602082019050919050565b600061328a8261321f565b613294818561322a565b935061329f8361323b565b8060005b838110156132d05781516132b7888261325a565b97506132c283613272565b9250506001810190506132a3565b5085935050505092915050565b600060a0820190506132f26000830188612557565b6132ff6020830187612c3f565b8181036040830152613311818661327f565b905061332060608301856127f6565b61332d6080830184612557565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613371826124ab565b915061337c836124ab565b92508261338c5761338b613337565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133f3602183612392565b91506133fe82613397565b604082019050919050565b60006020820190508181036000830152613422816133e6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122041a547cd36837786b2a92266c56aa447bf606ca40396796893cb0942e2971aac64736f6c63430008110033

Deployed Bytecode Sourcemap

3855:8052:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5744:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6635:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6045:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6814:321;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5946:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10394:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4781:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10574:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11609:144;;;;;;;;;;;;;:::i;:::-;;5039:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6156:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2874:154;;;;;;;;;;;;;:::i;:::-;;9923:167;;;;;;;;;;;;;:::i;:::-;;4659:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2642:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4719:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5843:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6291:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5094:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10700:689;;;;;;;;;;;;;:::i;:::-;;10210:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6476:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11401:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11765:137;;;;;;;;;;;;;:::i;:::-;;5744:87;5781:13;5816:5;;;;;;;;;;;;;;;;;5809:12;;5744:87;:::o;6635:167::-;6710:4;6729:39;6738:12;:10;:12::i;:::-;6752:7;6761:6;6729:8;:39::i;:::-;6788:4;6781:11;;6635:167;;;;:::o;6045:99::-;6098:7;4466:1;4521:2;:13;;;;:::i;:::-;4511:7;:23;;;;:::i;:::-;6120:14;;6045:99;:::o;6814:321::-;6912:4;6931:36;6941:6;6949:9;6960:6;6931:9;:36::i;:::-;6980:121;6989:6;6997:12;:10;:12::i;:::-;7011:89;7049:6;7011:89;;;;;;;;;;;;;;;;;:11;:19;7023:6;7011:19;;;;;;;;;;;;;;;:33;7031:12;:10;:12::i;:::-;7011:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6980:8;:121::i;:::-;7121:4;7114:11;;6814:321;;;;;:::o;5946:87::-;5987:5;4466:1;6007:16;;5946:87;:::o;10394:170::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10469:6:::1;10464:91;10485:6;:13;10481:1;:17;10464:91;;;10538:5;10520:4;:15;10525:6;10532:1;10525:9;;;;;;;;:::i;:::-;;;;;;;;10520:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10500:3;;;;;:::i;:::-;;;;10464:91;;;;10394:170:::0;:::o;4781:44::-;;;;:::o;10574:114::-;10634:4;10658;:20;10663:14;10658:20;;;;;;;;;;;;;;;;;;;;;;;;;10651:27;;10574:114;;;:::o;11609:144::-;11677:10;;;;;;;;;;;11661:26;;:12;:10;:12::i;:::-;:26;;;11653:35;;;;;;11701:42;11718:24;11736:4;11718:9;:24::i;:::-;11701:16;:42::i;:::-;11609:144::o;5039:46::-;;;;;;;;;;;;;;;;;;;;;;:::o;6156:123::-;6222:7;6251:9;:18;6261:7;6251:18;;;;;;;;;;;;;;;;6244:25;;6156:123;;;:::o;2874:154::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2983:1:::1;2946:40;;2967:6;::::0;::::1;;;;;;;;2946:40;;;;;;;;;;;;3016:1;2999:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2874:154::o:0;9923:167::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4466:1:::1;4521:2;:13;;;;:::i;:::-;4511:7;:23;;;;:::i;:::-;9978:12;:22;;;;4466:1;4521:2;:13;;;;:::i;:::-;4511:7;:23;;;;:::i;:::-;10013:14;:22;;;;10053:27;4466:1;4521:2;:13;;;;:::i;:::-;4511:7;:23;;;;:::i;:::-;10053:27;;;;;;:::i;:::-;;;;;;;;9923:167::o:0;4659:51::-;;;;:::o;2642:83::-;2680:7;2709:6;;;;;;;;;;;2702:13;;2642:83;:::o;4719:53::-;;;;:::o;5843:91::-;5882:13;5917:7;;;;;;;;;;;;;;;;;5910:14;;5843:91;:::o;6291:173::-;6369:4;6388:42;6398:12;:10;:12::i;:::-;6412:9;6423:6;6388:9;:42::i;:::-;6450:4;6443:11;;6291:173;;;;:::o;5094:27::-;;;;:::o;10700:689::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:11:::1;;;;;;;;;;;10765:12;10757:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10854:42;10817:15;;:80;;;;;;;;;;;;;;;;;;10910:58;10927:4;10942:15;;;;;;;;;;;4466:1;4521:2;:13;;;;:::i;:::-;4511:7;:23;;;;:::i;:::-;10910:8;:58::i;:::-;11015:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10997:55;;;11061:4;11068:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10997:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10981:13;;:110;;;;;;;;;;;;;;;;;;11104:15;;;;;;;;;;;:31;;;11143:21;11174:4;11180:24;11198:4;11180:9;:24::i;:::-;11205:1;11207::::0;11209:7:::1;:5;:7::i;:::-;11217:15;11104:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11260:4;11246:11;;:18;;;;;;;;;;;;;;;;;;11291:4;11277:11;;:18;;;;;;;;;;;;;;;;;;11315:13;;;;;;;;;;;11308:29;;;11346:15;;;;;;;;;;;11364:14;11308:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10700:689::o:0;10210:172::-;2789:12;:10;:12::i;:::-;2779:22;;:6;;;;;;;;;;:22;;;2771:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10286:6:::1;10281:92;10302:5;:12;10298:1;:16;10281:92;;;10355:4;10338;:14;10343:5;10349:1;10343:8;;;;;;;;:::i;:::-;;;;;;;;10338:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10316:3;;;;;:::i;:::-;;;;10281:92;;;;10210:172:::0;:::o;6476:147::-;6557:7;6586:11;:18;6598:5;6586:18;;;;;;;;;;;;;;;:27;6605:7;6586:27;;;;;;;;;;;;;;;;6579:34;;6476:147;;;;:::o;11401:155::-;11478:10;;;;;;;;;;;11464:24;;:12;:10;:12::i;:::-;:24;;;11456:33;;;;;;11516:1;11508:7;:9;11500:18;;;;;;11539:7;11529:9;:17;;;;11401:155;:::o;11765:137::-;11833:10;;;;;;;;;;;11817:26;;:12;:10;:12::i;:::-;:26;;;11809:35;;;;;;11857;11870:21;11857:12;:35::i;:::-;11765:137::o;1109:187::-;1167:7;1189:9;1205:1;1201;:5;;;;:::i;:::-;1189:17;;1232:1;1227;:6;;1219:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1285:1;1278:8;;;1109:187;;;;:::o;269:102::-;322:7;351:10;344:17;;269:102;:::o;7147:345::-;7259:1;7242:19;;:5;:19;;;7234:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7342:1;7323:21;;:7;:21;;;7315:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7426:6;7396:11;:18;7408:5;7396:18;;;;;;;;;;;;;;;:27;7415:7;7396:27;;;;;;;;;;;;;;;:36;;;;7466:7;7450:32;;7459:5;7450:32;;;7475:6;7450:32;;;;;;:::i;:::-;;;;;;;;7147:345;;;:::o;7504:1888::-;7610:1;7594:18;;:4;:18;;;7586:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7689:1;7675:16;;:2;:16;;;7667:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7761:1;7752:6;:10;7744:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7821:17;7865:7;:5;:7::i;:::-;7857:15;;:4;:15;;;;:32;;;;;7882:7;:5;:7::i;:::-;7876:13;;:2;:13;;;;7857:32;7853:1084;;;7917:4;:10;7922:4;7917:10;;;;;;;;;;;;;;;;;;;;;;;;;7916:11;:24;;;;;7932:4;:8;7937:2;7932:8;;;;;;;;;;;;;;;;;;;;;;;;;7931:9;7916:24;7908:33;;;;;;7962:6;;;;;;;;;;;7958:127;;8000:67;8063:3;8000:58;8022:12;;8012:9;;:22;8011:46;;8046:11;;8011:46;;;8036:9;;8011:46;8000:6;:10;;:58;;;;:::i;:::-;:62;;:67;;;;:::i;:::-;7988:79;;7958:127;8117:13;;;;;;;;;;;8109:21;;:4;:21;;;:55;;;;;8148:15;;;;;;;;;;;8134:30;;:2;:30;;;;8109:55;:83;;;;;8170:18;:22;8189:2;8170:22;;;;;;;;;;;;;;;;;;;;;;;;;8168:24;8109:83;8105:321;;;8234:12;;8224:6;:22;;8216:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8331:14;;8321:6;8305:13;8315:2;8305:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8297:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8397:9;;:11;;;;;;;;;:::i;:::-;;;;;;8105:321;8446:28;8477:24;8495:4;8477:9;:24::i;:::-;8446:55;;8523:6;;;;;;;;;;;8522:7;:32;;;;;8541:13;;;;;;;;;;;8533:21;;:4;:21;;;;8522:32;:47;;;;;8558:11;;;;;;;;;;;8522:47;:80;;;;;8594:8;;8573:20;:29;8522:80;:112;;;;;8616:18;;8606:9;;:28;8522:112;8518:406;;;8657:49;8683:6;8674:8;;:15;:31;;8697:8;;8674:31;;;8690:6;8674:31;8657:16;:49::i;:::-;8727:26;8756:21;8727:50;;8822:1;8801:18;:22;8798:109;;;8850:35;8863:21;8850:12;:35::i;:::-;8798:109;8636:288;8518:406;7891:1046;7853:1084;8969:27;8989:6;8969:9;:15;8979:4;8969:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8953:9;:15;8963:4;8953:15;;;;;;;;;;;;;;;:43;;;;9023:40;9041:21;9052:9;9041:6;:10;;:21;;;;:::i;:::-;9023:9;:13;9033:2;9023:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9009:9;:13;9019:2;9009:13;;;;;;;;;;;;;;;:54;;;;9103:2;9076:14;:24;9091:8;;9076:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;9129:15;9142:1;9129:8;;:12;;:15;;;;:::i;:::-;9118:8;:26;;;;9177:2;9162:41;;9171:4;9162:41;;;9181:21;9192:9;9181:6;:10;;:21;;;;:::i;:::-;9162:41;;;;;;:::i;:::-;;;;;;;;9229:1;9219:9;:11;9216:167;;;9271:39;9300:9;9271;:24;9289:4;9271:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9246:9;:24;9264:4;9246:24;;;;;;;;;;;;;;;:64;;;;9353:4;9330:39;;9339:4;9330:39;;;9359:9;9330:39;;;;;;:::i;:::-;;;;;;;;9216:167;7573:1819;7504:1888;;;:::o;1460:198::-;1546:7;1581:1;1576;:6;;1584:12;1568:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1610:9;1626:1;1622;:5;;;;:::i;:::-;1610:17;;1647:1;1640:8;;;1460:198;;;;;:::o;9404:507::-;5229:4;5220:6;;:13;;;;;;;;;;;;;;;;;;9484:21:::1;9522:1;9508:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9484:40;;9555:4;9537;9542:1;9537:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9583:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9573:4;9578:1;9573:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9618:62;9635:4;9650:15;;;;;;;;;;;9668:11;9618:8;:62::i;:::-;9693:15;;;;;;;;;;;:66;;;9776:11;9804:1;9822:4;9851;9873:15;9693:208;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9471:440;5269:5:::0;5260:6;;:14;;;;;;;;;;;;;;;;;;9404:507;:::o;10102:96::-;10161:10;;;;;;;;;;;:19;;:27;10181:6;10161:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10102:96;:::o;1670:260::-;1728:7;1759:1;1754;:6;1750:51;;1786:1;1779:8;;;;1750:51;1813:9;1829:1;1825;:5;;;;:::i;:::-;1813:17;;1860:1;1855;1851;:5;;;;:::i;:::-;:10;1843:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1919:1;1912:8;;;1670:260;;;;;:::o;1942:136::-;2000:7;2029:39;2033:1;2036;2029:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2022:46;;1942:136;;;;:::o;1308:140::-;1366:7;1395:43;1399:1;1402;1395:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1388:50;;1308:140;;;;:::o;2090:197::-;2176:7;2210:1;2206;:5;2213:12;2198:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2239:9;2255:1;2251;:5;;;;:::i;:::-;2239:17;;2276:1;2269:8;;;2090:197;;;;;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:::-;8089:6;8138:2;8126:9;8117:7;8113:23;8109:32;8106:119;;;8144:79;;:::i;:::-;8106:119;8264:1;8289:53;8334:7;8325:6;8314:9;8310:22;8289:53;:::i;:::-;8279:63;;8235:117;8030:329;;;;:::o;8365:118::-;8452:24;8470:5;8452:24;:::i;:::-;8447:3;8440:37;8365:118;;:::o;8489:222::-;8582:4;8620:2;8609:9;8605:18;8597:26;;8633:71;8701:1;8690:9;8686:17;8677:6;8633:71;:::i;:::-;8489:222;;;;:::o;8717:474::-;8785:6;8793;8842:2;8830:9;8821:7;8817:23;8813:32;8810:119;;;8848:79;;:::i;:::-;8810:119;8968:1;8993:53;9038:7;9029:6;9018:9;9014:22;8993:53;:::i;:::-;8983:63;;8939:117;9095:2;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9066:118;8717:474;;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:233;13337:3;13360:24;13378:5;13360:24;:::i;:::-;13351:33;;13406:66;13399:5;13396:77;13393:103;;13476:18;;:::i;:::-;13393:103;13523:1;13516:5;13512:13;13505:20;;13298:233;;;:::o;13537:173::-;13677:25;13673:1;13665:6;13661:14;13654:49;13537:173;:::o;13716:366::-;13858:3;13879:67;13943:2;13938:3;13879:67;:::i;:::-;13872:74;;13955:93;14044:3;13955:93;:::i;:::-;14073:2;14068:3;14064:12;14057:19;;13716:366;;;:::o;14088:419::-;14254:4;14292:2;14281:9;14277:18;14269:26;;14341:9;14335:4;14331:20;14327:1;14316:9;14312:17;14305:47;14369:131;14495:4;14369:131;:::i;:::-;14361:139;;14088:419;;;:::o;14513:143::-;14570:5;14601:6;14595:13;14586:22;;14617:33;14644:5;14617:33;:::i;:::-;14513:143;;;;:::o;14662:351::-;14732:6;14781:2;14769:9;14760:7;14756:23;14752:32;14749:119;;;14787:79;;:::i;:::-;14749:119;14907:1;14932:64;14988:7;14979:6;14968:9;14964:22;14932:64;:::i;:::-;14922:74;;14878:128;14662:351;;;;:::o;15019:332::-;15140:4;15178:2;15167:9;15163:18;15155:26;;15191:71;15259:1;15248:9;15244:17;15235:6;15191:71;:::i;:::-;15272:72;15340:2;15329:9;15325:18;15316:6;15272:72;:::i;:::-;15019:332;;;;;:::o;15357:85::-;15402:7;15431:5;15420:16;;15357:85;;;:::o;15448:60::-;15476:3;15497:5;15490:12;;15448:60;;;:::o;15514:158::-;15572:9;15605:61;15623:42;15632:32;15658:5;15632:32;:::i;:::-;15623:42;:::i;:::-;15605:61;:::i;:::-;15592:74;;15514:158;;;:::o;15678:147::-;15773:45;15812:5;15773:45;:::i;:::-;15768:3;15761:58;15678:147;;:::o;15831:807::-;16080:4;16118:3;16107:9;16103:19;16095:27;;16132:71;16200:1;16189:9;16185:17;16176:6;16132:71;:::i;:::-;16213:72;16281:2;16270:9;16266:18;16257:6;16213:72;:::i;:::-;16295:80;16371:2;16360:9;16356:18;16347:6;16295:80;:::i;:::-;16385;16461:2;16450:9;16446:18;16437:6;16385:80;:::i;:::-;16475:73;16543:3;16532:9;16528:19;16519:6;16475:73;:::i;:::-;16558;16626:3;16615:9;16611:19;16602:6;16558:73;:::i;:::-;15831:807;;;;;;;;;:::o;16644:143::-;16701:5;16732:6;16726:13;16717:22;;16748:33;16775:5;16748:33;:::i;:::-;16644:143;;;;:::o;16793:663::-;16881:6;16889;16897;16946:2;16934:9;16925:7;16921:23;16917:32;16914:119;;;16952:79;;:::i;:::-;16914:119;17072:1;17097:64;17153:7;17144:6;17133:9;17129:22;17097:64;:::i;:::-;17087:74;;17043:128;17210:2;17236:64;17292:7;17283:6;17272:9;17268:22;17236:64;:::i;:::-;17226:74;;17181:129;17349:2;17375:64;17431:7;17422:6;17411:9;17407:22;17375:64;:::i;:::-;17365:74;;17320:129;16793:663;;;;;:::o;17462:332::-;17583:4;17621:2;17610:9;17606:18;17598:26;;17634:71;17702:1;17691:9;17687:17;17678:6;17634:71;:::i;:::-;17715:72;17783:2;17772:9;17768:18;17759:6;17715:72;:::i;:::-;17462:332;;;;;:::o;17800:116::-;17870:21;17885:5;17870:21;:::i;:::-;17863:5;17860:32;17850:60;;17906:1;17903;17896:12;17850:60;17800:116;:::o;17922:137::-;17976:5;18007:6;18001:13;17992:22;;18023:30;18047:5;18023:30;:::i;:::-;17922:137;;;;:::o;18065:345::-;18132:6;18181:2;18169:9;18160:7;18156:23;18152:32;18149:119;;;18187:79;;:::i;:::-;18149:119;18307:1;18332:61;18385:7;18376:6;18365:9;18361:22;18332:61;:::i;:::-;18322:71;;18278:125;18065:345;;;;:::o;18416:191::-;18456:3;18475:20;18493:1;18475:20;:::i;:::-;18470:25;;18509:20;18527:1;18509:20;:::i;:::-;18504:25;;18552:1;18549;18545:9;18538:16;;18573:3;18570:1;18567:10;18564:36;;;18580:18;;:::i;:::-;18564:36;18416:191;;;;:::o;18613:177::-;18753:29;18749:1;18741:6;18737:14;18730:53;18613:177;:::o;18796:366::-;18938:3;18959:67;19023:2;19018:3;18959:67;:::i;:::-;18952:74;;19035:93;19124:3;19035:93;:::i;:::-;19153:2;19148:3;19144:12;19137:19;;18796:366;;;:::o;19168:419::-;19334:4;19372:2;19361:9;19357:18;19349:26;;19421:9;19415:4;19411:20;19407:1;19396:9;19392:17;19385:47;19449:131;19575:4;19449:131;:::i;:::-;19441:139;;19168:419;;;:::o;19593:223::-;19733:34;19729:1;19721:6;19717:14;19710:58;19802:6;19797:2;19789:6;19785:15;19778:31;19593:223;:::o;19822:366::-;19964:3;19985:67;20049:2;20044:3;19985:67;:::i;:::-;19978:74;;20061:93;20150:3;20061:93;:::i;:::-;20179:2;20174:3;20170:12;20163:19;;19822:366;;;:::o;20194:419::-;20360:4;20398:2;20387:9;20383:18;20375:26;;20447:9;20441:4;20437:20;20433:1;20422:9;20418:17;20411:47;20475:131;20601:4;20475:131;:::i;:::-;20467:139;;20194:419;;;:::o;20619:221::-;20759:34;20755:1;20747:6;20743:14;20736:58;20828:4;20823:2;20815:6;20811:15;20804:29;20619:221;:::o;20846:366::-;20988:3;21009:67;21073:2;21068:3;21009:67;:::i;:::-;21002:74;;21085:93;21174:3;21085:93;:::i;:::-;21203:2;21198:3;21194:12;21187:19;;20846:366;;;:::o;21218:419::-;21384:4;21422:2;21411:9;21407:18;21399:26;;21471:9;21465:4;21461:20;21457:1;21446:9;21442:17;21435:47;21499:131;21625:4;21499:131;:::i;:::-;21491:139;;21218:419;;;:::o;21643:224::-;21783:34;21779:1;21771:6;21767:14;21760:58;21852:7;21847:2;21839:6;21835:15;21828:32;21643:224;:::o;21873:366::-;22015:3;22036:67;22100:2;22095:3;22036:67;:::i;:::-;22029:74;;22112:93;22201:3;22112:93;:::i;:::-;22230:2;22225:3;22221:12;22214:19;;21873:366;;;:::o;22245:419::-;22411:4;22449:2;22438:9;22434:18;22426:26;;22498:9;22492:4;22488:20;22484:1;22473:9;22469:17;22462:47;22526:131;22652:4;22526:131;:::i;:::-;22518:139;;22245:419;;;:::o;22670:222::-;22810:34;22806:1;22798:6;22794:14;22787:58;22879:5;22874:2;22866:6;22862:15;22855:30;22670:222;:::o;22898:366::-;23040:3;23061:67;23125:2;23120:3;23061:67;:::i;:::-;23054:74;;23137:93;23226:3;23137:93;:::i;:::-;23255:2;23250:3;23246:12;23239:19;;22898:366;;;:::o;23270:419::-;23436:4;23474:2;23463:9;23459:18;23451:26;;23523:9;23517:4;23513:20;23509:1;23498:9;23494:17;23487:47;23551:131;23677:4;23551:131;:::i;:::-;23543:139;;23270:419;;;:::o;23695:228::-;23835:34;23831:1;23823:6;23819:14;23812:58;23904:11;23899:2;23891:6;23887:15;23880:36;23695:228;:::o;23929:366::-;24071:3;24092:67;24156:2;24151:3;24092:67;:::i;:::-;24085:74;;24168:93;24257:3;24168:93;:::i;:::-;24286:2;24281:3;24277:12;24270:19;;23929:366;;;:::o;24301:419::-;24467:4;24505:2;24494:9;24490:18;24482:26;;24554:9;24548:4;24544:20;24540:1;24529:9;24525:17;24518:47;24582:131;24708:4;24582:131;:::i;:::-;24574:139;;24301:419;;;:::o;24726:175::-;24866:27;24862:1;24854:6;24850:14;24843:51;24726:175;:::o;24907:366::-;25049:3;25070:67;25134:2;25129:3;25070:67;:::i;:::-;25063:74;;25146:93;25235:3;25146:93;:::i;:::-;25264:2;25259:3;25255:12;25248:19;;24907:366;;;:::o;25279:419::-;25445:4;25483:2;25472:9;25468:18;25460:26;;25532:9;25526:4;25522:20;25518:1;25507:9;25503:17;25496:47;25560:131;25686:4;25560:131;:::i;:::-;25552:139;;25279:419;;;:::o;25704:176::-;25844:28;25840:1;25832:6;25828:14;25821:52;25704:176;:::o;25886:366::-;26028:3;26049:67;26113:2;26108:3;26049:67;:::i;:::-;26042:74;;26125:93;26214:3;26125:93;:::i;:::-;26243:2;26238:3;26234:12;26227:19;;25886:366;;;:::o;26258:419::-;26424:4;26462:2;26451:9;26447:18;26439:26;;26511:9;26505:4;26501:20;26497:1;26486:9;26482:17;26475:47;26539:131;26665:4;26539:131;:::i;:::-;26531:139;;26258:419;;;:::o;26683:194::-;26723:4;26743:20;26761:1;26743:20;:::i;:::-;26738:25;;26777:20;26795:1;26777:20;:::i;:::-;26772:25;;26821:1;26818;26814:9;26806:17;;26845:1;26839:4;26836:11;26833:37;;;26850:18;;:::i;:::-;26833:37;26683:194;;;;:::o;26883:114::-;26950:6;26984:5;26978:12;26968:22;;26883:114;;;:::o;27003:184::-;27102:11;27136:6;27131:3;27124:19;27176:4;27171:3;27167:14;27152:29;;27003:184;;;;:::o;27193:132::-;27260:4;27283:3;27275:11;;27313:4;27308:3;27304:14;27296:22;;27193:132;;;:::o;27331:108::-;27408:24;27426:5;27408:24;:::i;:::-;27403:3;27396:37;27331:108;;:::o;27445:179::-;27514:10;27535:46;27577:3;27569:6;27535:46;:::i;:::-;27613:4;27608:3;27604:14;27590:28;;27445:179;;;;:::o;27630:113::-;27700:4;27732;27727:3;27723:14;27715:22;;27630:113;;;:::o;27779:732::-;27898:3;27927:54;27975:5;27927:54;:::i;:::-;27997:86;28076:6;28071:3;27997:86;:::i;:::-;27990:93;;28107:56;28157:5;28107:56;:::i;:::-;28186:7;28217:1;28202:284;28227:6;28224:1;28221:13;28202:284;;;28303:6;28297:13;28330:63;28389:3;28374:13;28330:63;:::i;:::-;28323:70;;28416:60;28469:6;28416:60;:::i;:::-;28406:70;;28262:224;28249:1;28246;28242:9;28237:14;;28202:284;;;28206:14;28502:3;28495:10;;27903:608;;;27779:732;;;;:::o;28517:831::-;28780:4;28818:3;28807:9;28803:19;28795:27;;28832:71;28900:1;28889:9;28885:17;28876:6;28832:71;:::i;:::-;28913:80;28989:2;28978:9;28974:18;28965:6;28913:80;:::i;:::-;29040:9;29034:4;29030:20;29025:2;29014:9;29010:18;29003:48;29068:108;29171:4;29162:6;29068:108;:::i;:::-;29060:116;;29186:72;29254:2;29243:9;29239:18;29230:6;29186:72;:::i;:::-;29268:73;29336:3;29325:9;29321:19;29312:6;29268:73;:::i;:::-;28517:831;;;;;;;;:::o;29354:180::-;29402:77;29399:1;29392:88;29499:4;29496:1;29489:15;29523:4;29520:1;29513:15;29540:185;29580:1;29597:20;29615:1;29597:20;:::i;:::-;29592:25;;29631:20;29649:1;29631:20;:::i;:::-;29626:25;;29670:1;29660:35;;29675:18;;:::i;:::-;29660:35;29717:1;29714;29710:9;29705:14;;29540:185;;;;:::o;29731:220::-;29871:34;29867:1;29859:6;29855:14;29848:58;29940:3;29935:2;29927:6;29923:15;29916:28;29731:220;:::o;29957:366::-;30099:3;30120:67;30184:2;30179:3;30120:67;:::i;:::-;30113:74;;30196:93;30285:3;30196:93;:::i;:::-;30314:2;30309:3;30305:12;30298:19;;29957:366;;;:::o;30329:419::-;30495:4;30533:2;30522:9;30518:18;30510:26;;30582:9;30576:4;30572:20;30568:1;30557:9;30553:17;30546:47;30610:131;30736:4;30610:131;:::i;:::-;30602:139;;30329:419;;;:::o

Swarm Source

ipfs://41a547cd36837786b2a92266c56aa447bf606ca40396796893cb0942e2971aac
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.