ETH Price: $3,975.63 (+3.41%)

Token

Octo Raider (OctoRaider)
 

Overview

Max Total Supply

8,888 OctoRaider

Holders

466

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
Balance
10 OctoRaider
0xde4893afb64296e05da50762a0bcf5b42943621e
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:
OctoRaider

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**
 *Submitted for verification at Etherscan.io on 2022-04-08
*/

/**
 *Submitted for verification at Etherscan.io on 2022-03-11
*/

/**
 *Submitted for verification at Etherscan.io on 2022-02-21
*/

/**
 *Submitted for verification at Etherscan.io on 2022-02-09
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0; 
abstract contract ReentrancyGuard { 
    uint256 private constant _NOT_ENTERED = 1;
    uint256 private constant _ENTERED = 2;

    uint256 private _status;

    constructor() {
        _status = _NOT_ENTERED;
    }
    modifier nonReentrant() {
        require(_status != _ENTERED, "ReentrancyGuard: reentrant call");
   _status = _ENTERED;

        _;
        _status = _NOT_ENTERED;
    }
}

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";
 
    function toString(uint256 value) internal pure returns (string memory) { 
        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }
 
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }
 
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}
 
abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
    constructor() {
        _transferOwnership(_msgSender());
    }
 
    function owner() public view virtual returns (address) {
        return _owner;
    } 
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
 
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
 
library Address { 
    function isContract(address account) internal view returns (bool) { 
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    } 
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
 
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionCall(target, data, "Address: low-level call failed");
    } 
    function functionCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, 0, errorMessage);
    }
 
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value
    ) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }
 
    function functionCallWithValue(
        address target,
        bytes memory data,
        uint256 value,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    } 
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }
 
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
 
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }
 
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }
 
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        if (success) {
            return returndata;
        } else { 
            if (returndata.length > 0) { 

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}
 
interface IERC721Receiver { 
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}
 
interface IERC165 { 
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}
 
abstract contract ERC165 is IERC165 { 
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
} 
interface IERC721 is IERC165 { 
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); 
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); 
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved); 
    function balanceOf(address owner) external view returns (uint256 balance); 
    function ownerOf(uint256 tokenId) external view returns (address owner); 
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external; 
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external; 
    function approve(address to, uint256 tokenId) external;
 
    function getApproved(uint256 tokenId) external view returns (address operator); 
    function setApprovalForAll(address operator, bool _approved) external; 
    function isApprovedForAll(address owner, address operator) external view returns (bool); 
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
} 
interface IERC721Enumerable is IERC721 { 
    function totalSupply() external view returns (uint256); 
    function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); 
    function tokenByIndex(uint256 index) external view returns (uint256);
}  
interface IERC721Metadata is IERC721 { 
    function name() external view returns (string memory); 
    function symbol() external view returns (string memory); 
    function tokenURI(uint256 tokenId) external view returns (string memory);
} 
contract ERC721A is
  Context,
  ERC165,
  IERC721,
  IERC721Metadata,
  IERC721Enumerable
{
  using Address for address;
  using Strings for uint256;

  struct TokenOwnership {
    address addr;
    uint64 startTimestamp;
  }

  struct AddressData {
    uint128 balance;
    uint128 numberMinted;
  }

  uint256 private currentIndex = 0;

  uint256 internal immutable collectionSize;
  uint256 internal immutable maxBatchSize; 
  string private _name; 
  string private _symbol; 
  mapping(uint256 => TokenOwnership) private _ownerships; 
  mapping(address => AddressData) private _addressData; 
  mapping(uint256 => address) private _tokenApprovals; 
  mapping(address => mapping(address => bool)) private _operatorApprovals; 
  constructor(
    string memory name_,
    string memory symbol_,
    uint256 maxBatchSize_,
    uint256 collectionSize_
  ) {
    require(
      collectionSize_ > 0,
      "ERC721A: collection must have a nonzero supply"
    );
    require(maxBatchSize_ > 0, "ERC721A: max batch size must be nonzero");
    _name = name_;
    _symbol = symbol_;
    maxBatchSize = maxBatchSize_;
    collectionSize = collectionSize_;
  } 
  function totalSupply() public view override returns (uint256) {
    return currentIndex;
  } 
  function tokenByIndex(uint256 index) public view override returns (uint256) {
    require(index < totalSupply(), "ERC721A: global index out of bounds");
    return index;
  } 
  function tokenOfOwnerByIndex(address owner, uint256 index)
    public
    view
    override
    returns (uint256)
  {
    require(index < balanceOf(owner), "ERC721A: owner index out of bounds");
    uint256 numMintedSoFar = totalSupply();
    uint256 tokenIdsIdx = 0;
    address currOwnershipAddr = address(0);
    for (uint256 i = 0; i < numMintedSoFar; i++) {
      TokenOwnership memory ownership = _ownerships[i];
      if (ownership.addr != address(0)) {
        currOwnershipAddr = ownership.addr;
      }
      if (currOwnershipAddr == owner) {
        if (tokenIdsIdx == index) {
          return i;
        }
        tokenIdsIdx++;
      }
    }
    revert("ERC721A: unable to get token of owner by index");
  } 
  function supportsInterface(bytes4 interfaceId)
    public
    view
    virtual
    override(ERC165, IERC165)
    returns (bool)
  {
    return
      interfaceId == type(IERC721).interfaceId ||
      interfaceId == type(IERC721Metadata).interfaceId ||
      interfaceId == type(IERC721Enumerable).interfaceId ||
      super.supportsInterface(interfaceId);
  } 
  function balanceOf(address owner) public view override returns (uint256) {
    require(owner != address(0), "ERC721A: balance query for the zero address");
    return uint256(_addressData[owner].balance);
  }

  function _numberMinted(address owner) internal view returns (uint256) {
    require(
      owner != address(0),
      "ERC721A: number minted query for the zero address"
    );
    return uint256(_addressData[owner].numberMinted);
  }

  function ownershipOf(uint256 tokenId)
    internal
    view
    returns (TokenOwnership memory)
  {
    require(_exists(tokenId), "ERC721A: owner query for nonexistent token");

    uint256 lowestTokenToCheck;
    if (tokenId >= maxBatchSize) {
      lowestTokenToCheck = tokenId - maxBatchSize + 1;
    }

    for (uint256 curr = tokenId; curr >= lowestTokenToCheck; curr--) {
      TokenOwnership memory ownership = _ownerships[curr];
      if (ownership.addr != address(0)) {
        return ownership;
      }
    }

    revert("ERC721A: unable to determine the owner of token");
  } 
  function ownerOf(uint256 tokenId) public view override returns (address) {
    return ownershipOf(tokenId).addr;
  } 
  function name() public view virtual override returns (string memory) {
    return _name;
  } 
  function symbol() public view virtual override returns (string memory) {
    return _symbol;
  } 
  function tokenURI(uint256 tokenId)
    public
    view
    virtual
    override
    returns (string memory)
  {
    require(
      _exists(tokenId),
      "ERC721Metadata: URI query for nonexistent token"
    );

    string memory baseURI = _baseURI();
    return
      bytes(baseURI).length > 0
        ? string(abi.encodePacked(baseURI, tokenId.toString(),_getUriExtension()))
        : "";
  } 
  function _baseURI() internal view virtual returns (string memory) {
    return "";
  }

  function _getUriExtension() internal view virtual returns (string memory) {
    return "";
  }
 
  function approve(address to, uint256 tokenId) public override {
    address owner = ERC721A.ownerOf(tokenId);
    require(to != owner, "ERC721A: approval to current owner");

    require(
      _msgSender() == owner || isApprovedForAll(owner, _msgSender()),
      "ERC721A: approve caller is not owner nor approved for all"
    );

    _approve(to, tokenId, owner);
  } 
  function getApproved(uint256 tokenId) public view override returns (address) {
    require(_exists(tokenId), "ERC721A: approved query for nonexistent token");

    return _tokenApprovals[tokenId];
  } 
  function setApprovalForAll(address operator, bool approved) public override {
    require(operator != _msgSender(), "ERC721A: approve to caller");

    _operatorApprovals[_msgSender()][operator] = approved;
    emit ApprovalForAll(_msgSender(), operator, approved);
  }
 
  function isApprovedForAll(address owner, address operator)
    public
    view
    virtual
    override
    returns (bool)
  {
    return _operatorApprovals[owner][operator];
  }
 
  function transferFrom(
    address from,
    address to,
    uint256 tokenId
  ) public override {
    _transfer(from, to, tokenId);
  } 
  function safeTransferFrom(
    address from,
    address to,
    uint256 tokenId
  ) public override {
    safeTransferFrom(from, to, tokenId, "");
  } 
  function safeTransferFrom(
    address from,
    address to,
    uint256 tokenId,
    bytes memory _data
  ) public override {
    _transfer(from, to, tokenId);
    require(
      _checkOnERC721Received(from, to, tokenId, _data),
      "ERC721A: transfer to non ERC721Receiver implementer"
    );
  } 
  function _exists(uint256 tokenId) internal view returns (bool) {
    return tokenId < currentIndex;
  }

  function _safeMint(address to, uint256 quantity) internal {
    _safeMint(to, quantity, "");
  } 
  function _safeMint(
    address to,
    uint256 quantity,
    bytes memory _data
  ) internal {
    uint256 startTokenId = currentIndex;
    require(to != address(0), "ERC721A: mint to the zero address"); 
    require(!_exists(startTokenId), "ERC721A: token already minted");
    require(quantity <= maxBatchSize, "ERC721A: quantity to mint too high");

    _beforeTokenTransfers(address(0), to, startTokenId, quantity);

    AddressData memory addressData = _addressData[to];
    _addressData[to] = AddressData(
      addressData.balance + uint128(quantity),
      addressData.numberMinted + uint128(quantity)
    );
    _ownerships[startTokenId] = TokenOwnership(to, uint64(block.timestamp));

    uint256 updatedIndex = startTokenId;

    for (uint256 i = 0; i < quantity; i++) {
      emit Transfer(address(0), to, updatedIndex);
      require(
        _checkOnERC721Received(address(0), to, updatedIndex, _data),
        "ERC721A: transfer to non ERC721Receiver implementer"
      );
      updatedIndex++;
    }

    currentIndex = updatedIndex;
    _afterTokenTransfers(address(0), to, startTokenId, quantity);
  } 
  function _transfer(
    address from,
    address to,
    uint256 tokenId
  ) private {
    TokenOwnership memory prevOwnership = ownershipOf(tokenId);

    bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr ||
      getApproved(tokenId) == _msgSender() ||
      isApprovedForAll(prevOwnership.addr, _msgSender()));

    require(
      isApprovedOrOwner,
      "ERC721A: transfer caller is not owner nor approved"
    );

    require(
      prevOwnership.addr == from,
      "ERC721A: transfer from incorrect owner"
    );
    require(to != address(0), "ERC721A: transfer to the zero address");

    _beforeTokenTransfers(from, to, tokenId, 1); 
    _approve(address(0), tokenId, prevOwnership.addr);

    _addressData[from].balance -= 1;
    _addressData[to].balance += 1;
    _ownerships[tokenId] = TokenOwnership(to, uint64(block.timestamp)); 
    uint256 nextTokenId = tokenId + 1;
    if (_ownerships[nextTokenId].addr == address(0)) {
      if (_exists(nextTokenId)) {
        _ownerships[nextTokenId] = TokenOwnership(
          prevOwnership.addr,
          prevOwnership.startTimestamp
        );
      }
    }

    emit Transfer(from, to, tokenId);
    _afterTokenTransfers(from, to, tokenId, 1);
  } 
  function _approve(
    address to,
    uint256 tokenId,
    address owner
  ) private {
    _tokenApprovals[tokenId] = to;
    emit Approval(owner, to, tokenId);
  }

  uint256 public nextOwnerToExplicitlySet = 0; 
  function _setOwnersExplicit(uint256 quantity) internal {
    uint256 oldNextOwnerToSet = nextOwnerToExplicitlySet;
    require(quantity > 0, "quantity must be nonzero");
    uint256 endIndex = oldNextOwnerToSet + quantity - 1;
    if (endIndex > collectionSize - 1) {
      endIndex = collectionSize - 1;
    } 
    require(_exists(endIndex), "not enough minted yet for this cleanup");
    for (uint256 i = oldNextOwnerToSet; i <= endIndex; i++) {
      if (_ownerships[i].addr == address(0)) {
        TokenOwnership memory ownership = ownershipOf(i);
        _ownerships[i] = TokenOwnership(
          ownership.addr,
          ownership.startTimestamp
        );
      }
    }
    nextOwnerToExplicitlySet = endIndex + 1;
  } 
  function _checkOnERC721Received(
    address from,
    address to,
    uint256 tokenId,
    bytes memory _data
  ) private returns (bool) {
    if (to.isContract()) {
      try
        IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data)
      returns (bytes4 retval) {
        return retval == IERC721Receiver(to).onERC721Received.selector;
      } catch (bytes memory reason) {
        if (reason.length == 0) {
          revert("ERC721A: transfer to non ERC721Receiver implementer");
        } else {
          assembly {
            revert(add(32, reason), mload(reason))
          }
        }
      }
    } else {
      return true;
    }
  } 
  function _beforeTokenTransfers(
    address from,
    address to,
    uint256 startTokenId,
    uint256 quantity
  ) internal virtual {} 
  function _afterTokenTransfers(
    address from,
    address to,
    uint256 startTokenId,
    uint256 quantity
  ) internal virtual {}
}

contract OctoRaider is Ownable, ERC721A, ReentrancyGuard {
    using Strings for uint256;

  uint256 public MAX_PER_Transtion = 10; // maximam amount that user can mint 

  uint256 public  PRICE = 0.07 ether;

  uint256 private constant TotalCollectionSize_ = 8888; // total number of nfts
  uint256 private constant MaxMintPerBatch_ = 50; //max mint per traction

  bool public _revelNFT = false;
  string private _baseTokenURI;
  string private _uriBeforeRevel;
  uint private reserve = 100;

  uint public status = 0; //0-pause  2-public
 

  constructor() ERC721A("Octo Raider","OctoRaider", MaxMintPerBatch_, TotalCollectionSize_) {
    _uriBeforeRevel = "https://octaraider.mypinata.cloud/ipfs/QmeCZg2qet4mLobcJtjkoT4cxwBvZQ5gjjaMHGGRSed2Kd";
  }

  modifier callerIsUser() {
    require(tx.origin == msg.sender, "The caller is another contract");
    _;
  }
 
  function mint(uint256 quantity) external payable callerIsUser {
    require(status == 2 , "Sale is not Active");
    require(totalSupply() + quantity <= collectionSize - reserve, "reached max supply");
    require(  quantity <= MAX_PER_Transtion,"can not mint this many");
    require(msg.value >= PRICE * quantity, "Need to send more ETH.");
    _safeMint(msg.sender, quantity);   
  }

   function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
    require(_exists(tokenId),"ERC721Metadata: URI query for nonexistent token");
    if(_revelNFT){
    string memory baseURI = _baseURI();
    return
      bytes(baseURI).length > 0
        ? string(abi.encodePacked(baseURI, tokenId.toString()))
        : "";
    } else{
      return _uriBeforeRevel;
    }
  }

  function setURIbeforeRevel(string memory URI) external onlyOwner {
    _uriBeforeRevel = URI;
  }

  function setBaseURI(string memory baseURI) external onlyOwner {
    _baseTokenURI = baseURI;
  }
  function _baseURI() internal view virtual override returns (string memory) {
    return _baseTokenURI;
  }
  function numberMinted(address owner) public view returns (uint256) {
    return _numberMinted(owner);
  }
  function getOwnershipData(uint256 tokenId)
    external
    view
    returns (TokenOwnership memory)
  {
    return ownershipOf(tokenId);
  }
  function withdrawMoney() external onlyOwner nonReentrant {
    uint balance = address(this).balance;
    uint split = (balance / 1000)*20; //2.0

    payable(0x77E5C0704d9681765d9C7204D66e5110c6556DDd).transfer(split);
    payable(msg.sender).transfer(balance-split);
  }
  function changeRevelStatus() external onlyOwner {
    _revelNFT = !_revelNFT;
  }
  function changeMintPrice(uint256 _newPrice) external onlyOwner
  {
      PRICE = _newPrice;
  }
  function changeMAX_PER_Transtion(uint256 q) external onlyOwner
  {
      MAX_PER_Transtion = q;
  }
  function setStatus(uint256 s)external onlyOwner{
      status = s;
  }
  function getStatus()public view returns(uint){
      return status;
  }
  function getPrice()public view returns(uint){
      return PRICE;
  }
  function giveaway(address a, uint q)public onlyOwner{
    _safeMint(a, q);
  }
  function setReserve(uint256 r)external onlyOwner{
      reserve = r;
  }
}

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":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_PER_Transtion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_revelNFT","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"q","type":"uint256"}],"name":"changeMAX_PER_Transtion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"changeMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeRevelStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getOwnershipData","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"}],"internalType":"struct ERC721A.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"q","type":"uint256"}],"name":"giveaway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextOwnerToExplicitlySet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"r","type":"uint256"}],"name":"setReserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"s","type":"uint256"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"URI","type":"string"}],"name":"setURIbeforeRevel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawMoney","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60c060405260006001556000600855600a805566f8b0a10e470000600b556000600c60006101000a81548160ff0219169083151502179055506064600f5560006010553480156200004f57600080fd5b506040518060400160405280600b81526020017f4f63746f205261696465720000000000000000000000000000000000000000008152506040518060400160405280600a81526020017f4f63746f5261696465720000000000000000000000000000000000000000000081525060326122b8620000e1620000d5620001f360201b60201c565b620001fb60201b60201c565b6000811162000127576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200011e90620003df565b60405180910390fd5b600082116200016d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200016490620003bd565b60405180910390fd5b836002908051906020019062000185929190620002bf565b5082600390805190602001906200019e929190620002bf565b508160a0818152505080608081815250505050505060016009819055506040518060800160405280605581526020016200518d60559139600e9080519060200190620001ec929190620002bf565b5062000515565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002cd9062000412565b90600052602060002090601f016020900481019282620002f157600085556200033d565b82601f106200030c57805160ff19168380011785556200033d565b828001600101855582156200033d579182015b828111156200033c5782518255916020019190600101906200031f565b5b5090506200034c919062000350565b5090565b5b808211156200036b57600081600090555060010162000351565b5090565b60006200037e60278362000401565b91506200038b8262000477565b604082019050919050565b6000620003a5602e8362000401565b9150620003b282620004c6565b604082019050919050565b60006020820190508181036000830152620003d8816200036f565b9050919050565b60006020820190508181036000830152620003fa8162000396565b9050919050565b600082825260208201905092915050565b600060028204905060018216806200042b57607f821691505b6020821081141562000442576200044162000448565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f455243373231413a206d61782062617463682073697a65206d7573742062652060008201527f6e6f6e7a65726f00000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060008201527f6e6f6e7a65726f20737570706c79000000000000000000000000000000000000602082015250565b60805160a051614c446200054960003960008181612593015281816125bc0152612d3b0152600061156d0152614c446000f3fe6080604052600436106102255760003560e01c806370a0823111610123578063ac446002116100ab578063d04950a11161006f578063d04950a1146107e2578063d7224ba01461080d578063dc33e68114610838578063e985e9c514610875578063f2fde38b146108b257610225565b8063ac44600214610725578063af7b26e91461073c578063b88d4fde14610765578063bd0a84391461078e578063c87b56dd146107a557610225565b80639231ab2a116100f25780639231ab2a1461064d57806395d89b411461068a57806398d5fdca146106b5578063a0712d68146106e0578063a22cb465146106fc57610225565b806370a08231146105a3578063715018a6146105e05780638d859f3e146105f75780638da5cb5b1461062257610225565b80633fd17366116101b157806355f804b31161017557806355f804b3146104c05780635c37809d146104e957806362c6f7b9146105125780636352211e1461053d57806369ba1a751461057a57610225565b80633fd17366146103dd5780634256dbe31461040657806342842e0e1461042f5780634e69d560146104585780634f6ccce71461048357610225565b8063095ea7b3116101f8578063095ea7b3146102f857806318160ddd14610321578063200d2ed21461034c57806323b872dd146103775780632f745c59146103a057610225565b806301ffc9a71461022a578063050225ea1461026757806306fdde0314610290578063081812fc146102bb575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190613561565b6108db565b60405161025e9190613b8a565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190613521565b610a25565b005b34801561029c57600080fd5b506102a5610aaf565b6040516102b29190613ba5565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190613604565b610b41565b6040516102ef9190613b23565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a9190613521565b610bc6565b005b34801561032d57600080fd5b50610336610cdf565b6040516103439190613f42565b60405180910390f35b34801561035857600080fd5b50610361610ce9565b60405161036e9190613f42565b60405180910390f35b34801561038357600080fd5b5061039e6004803603810190610399919061340b565b610cef565b005b3480156103ac57600080fd5b506103c760048036038101906103c29190613521565b610cff565b6040516103d49190613f42565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff9190613604565b610efd565b005b34801561041257600080fd5b5061042d60048036038101906104289190613604565b610f83565b005b34801561043b57600080fd5b506104566004803603810190610451919061340b565b611009565b005b34801561046457600080fd5b5061046d611029565b60405161047a9190613f42565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190613604565b611033565b6040516104b79190613f42565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906135bb565b611086565b005b3480156104f557600080fd5b50610510600480360381019061050b91906135bb565b61111c565b005b34801561051e57600080fd5b506105276111b2565b6040516105349190613b8a565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190613604565b6111c5565b6040516105719190613b23565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613604565b6111db565b005b3480156105af57600080fd5b506105ca60048036038101906105c5919061339e565b611261565b6040516105d79190613f42565b60405180910390f35b3480156105ec57600080fd5b506105f561134a565b005b34801561060357600080fd5b5061060c6113d2565b6040516106199190613f42565b60405180910390f35b34801561062e57600080fd5b506106376113d8565b6040516106449190613b23565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190613604565b611401565b6040516106819190613f27565b60405180910390f35b34801561069657600080fd5b5061069f611419565b6040516106ac9190613ba5565b60405180910390f35b3480156106c157600080fd5b506106ca6114ab565b6040516106d79190613f42565b60405180910390f35b6106fa60048036038101906106f59190613604565b6114b5565b005b34801561070857600080fd5b50610723600480360381019061071e91906134e1565b61168c565b005b34801561073157600080fd5b5061073a61180d565b005b34801561074857600080fd5b50610763600480360381019061075e9190613604565b6119b3565b005b34801561077157600080fd5b5061078c6004803603810190610787919061345e565b611a39565b005b34801561079a57600080fd5b506107a3611a95565b005b3480156107b157600080fd5b506107cc60048036038101906107c79190613604565b611b3d565b6040516107d99190613ba5565b60405180910390f35b3480156107ee57600080fd5b506107f7611c8c565b6040516108049190613f42565b60405180910390f35b34801561081957600080fd5b50610822611c92565b60405161082f9190613f42565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a919061339e565b611c98565b60405161086c9190613f42565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906133cb565b611caa565b6040516108a99190613b8a565b60405180910390f35b3480156108be57600080fd5b506108d960048036038101906108d4919061339e565b611d3e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109a657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a0e57507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1e5750610a1d82611e36565b5b9050919050565b610a2d611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610a4b6113d8565b73ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890613d47565b60405180910390fd5b610aab8282611ea8565b5050565b606060028054610abe906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea906142c6565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610b4c82611ec6565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613ee7565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610bd1826111c5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990613dc7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c61611ea0565b73ffffffffffffffffffffffffffffffffffffffff161480610c905750610c8f81610c8a611ea0565b611caa565b5b610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc690613cc7565b60405180910390fd5b610cda838383611ed4565b505050565b6000600154905090565b60105481565b610cfa838383611f86565b505050565b6000610d0a83611261565b8210610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290613bc7565b60405180910390fd5b6000610d55610cdf565b905060008060005b83811015610ebb576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610e4f57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ea75786841415610e98578195505050505050610ef7565b8380610ea390614329565b9450505b508080610eb390614329565b915050610d5d565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90613e87565b60405180910390fd5b92915050565b610f05611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610f236113d8565b73ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090613d47565b60405180910390fd5b80600b8190555050565b610f8b611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610fa96113d8565b73ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690613d47565b60405180910390fd5b80600f8190555050565b61102483838360405180602001604052806000815250611a39565b505050565b6000601054905090565b600061103d610cdf565b821061107e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107590613c27565b60405180910390fd5b819050919050565b61108e611ea0565b73ffffffffffffffffffffffffffffffffffffffff166110ac6113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613d47565b60405180910390fd5b80600d9080519060200190611118929190613178565b5050565b611124611ea0565b73ffffffffffffffffffffffffffffffffffffffff166111426113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90613d47565b60405180910390fd5b80600e90805190602001906111ae929190613178565b5050565b600c60009054906101000a900460ff1681565b60006111d08261253f565b600001519050919050565b6111e3611ea0565b73ffffffffffffffffffffffffffffffffffffffff166112016113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90613d47565b60405180910390fd5b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990613ce7565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b611352611ea0565b73ffffffffffffffffffffffffffffffffffffffff166113706113d8565b73ffffffffffffffffffffffffffffffffffffffff16146113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90613d47565b60405180910390fd5b6113d06000612742565b565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114096131fe565b6114128261253f565b9050919050565b606060038054611428906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611454906142c6565b80156114a15780601f10611476576101008083540402835291602001916114a1565b820191906000526020600020905b81548152906001019060200180831161148457829003601f168201915b5050505050905090565b6000600b54905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613ca7565b60405180910390fd5b600260105414611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90613c87565b60405180910390fd5b600f547f00000000000000000000000000000000000000000000000000000000000000006115969190614182565b8161159f610cdf565b6115a9919061406d565b11156115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613d07565b60405180910390fd5b600a5481111561162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690613e67565b60405180910390fd5b80600b5461163d91906140f4565b34101561167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690613e07565b60405180910390fd5b6116893382611ea8565b50565b611694611ea0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990613d87565b60405180910390fd5b806007600061170f611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117bc611ea0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118019190613b8a565b60405180910390a35050565b611815611ea0565b73ffffffffffffffffffffffffffffffffffffffff166118336113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090613d47565b60405180910390fd5b600260095414156118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690613ea7565b60405180910390fd5b60026009819055506000479050600060146103e8836118ee91906140c3565b6118f891906140f4565b90507377e5c0704d9681765d9c7204d66e5110c6556ddd73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611954573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc828461197b9190614182565b9081150290604051600060405180830381858888f193505050501580156119a6573d6000803e3d6000fd5b5050506001600981905550565b6119bb611ea0565b73ffffffffffffffffffffffffffffffffffffffff166119d96113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2690613d47565b60405180910390fd5b80600a8190555050565b611a44848484611f86565b611a5084848484612806565b611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690613de7565b60405180910390fd5b50505050565b611a9d611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611abb6113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890613d47565b60405180910390fd5b600c60009054906101000a900460ff1615600c60006101000a81548160ff021916908315150217905550565b6060611b4882611ec6565b611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90613d67565b60405180910390fd5b600c60009054906101000a900460ff1615611bf9576000611ba661299d565b90506000815111611bc65760405180602001604052806000815250611bf1565b80611bd084612a2f565b604051602001611be1929190613aff565b6040516020818303038152906040525b915050611c87565b600e8054611c06906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611c32906142c6565b8015611c7f5780601f10611c5457610100808354040283529160200191611c7f565b820191906000526020600020905b815481529060010190602001808311611c6257829003601f168201915b505050505090505b919050565b600a5481565b60085481565b6000611ca382612b90565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d46611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611d646113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190613d47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2190613be7565b60405180910390fd5b611e3381612742565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b611ec2828260405180602001604052806000815250612c79565b5050565b600060015482109050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000611f918261253f565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16611fb8611ea0565b73ffffffffffffffffffffffffffffffffffffffff1614806120145750611fdd611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611ffc84610b41565b73ffffffffffffffffffffffffffffffffffffffff16145b80612030575061202f826000015161202a611ea0565b611caa565b5b905080612072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206990613da7565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db90613d27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214b90613c47565b60405180910390fd5b6121618585856001613159565b6121716000848460000151611ed4565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166121df919061414e565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166122839190614027565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612389919061406d565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156124cf576123ff81611ec6565b156124ce576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612537868686600161315f565b505050505050565b6125476131fe565b61255082611ec6565b61258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258690613c07565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000083106125f35760017f0000000000000000000000000000000000000000000000000000000000000000846125e69190614182565b6125f0919061406d565b90505b60008390505b818110612701576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146126ed5780935050505061273d565b5080806126f99061429c565b9150506125f9565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273490613ec7565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006128278473ffffffffffffffffffffffffffffffffffffffff16613165565b15612990578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612850611ea0565b8786866040518563ffffffff1660e01b81526004016128729493929190613b3e565b602060405180830381600087803b15801561288c57600080fd5b505af19250505080156128bd57506040513d601f19601f820116820180604052508101906128ba919061358e565b60015b612940573d80600081146128ed576040519150601f19603f3d011682016040523d82523d6000602084013e6128f2565b606091505b50600081511415612938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292f90613de7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612995565b600190505b949350505050565b6060600d80546129ac906142c6565b80601f01602080910402602001604051908101604052809291908181526020018280546129d8906142c6565b8015612a255780601f106129fa57610100808354040283529160200191612a25565b820191906000526020600020905b815481529060010190602001808311612a0857829003601f168201915b5050505050905090565b60606000821415612a77576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612b8b565b600082905060005b60008214612aa9578080612a9290614329565b915050600a82612aa291906140c3565b9150612a7f565b60008167ffffffffffffffff811115612ac557612ac461445f565b5b6040519080825280601f01601f191660200182016040528015612af75781602001600182028036833780820191505090505b5090505b60008514612b8457600182612b109190614182565b9150600a85612b1f9190614372565b6030612b2b919061406d565b60f81b818381518110612b4157612b40614430565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612b7d91906140c3565b9450612afb565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf890613c67565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce790613e47565b60405180910390fd5b612cf981611ec6565b15612d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3090613e27565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000831115612d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9390613f07565b60405180910390fd5b612da96000858386613159565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506040518060400160405280858360000151612ea69190614027565b6fffffffffffffffffffffffffffffffff168152602001858360200151612ecd9190614027565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561313c57818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46130dc6000888488612806565b61311b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311290613de7565b60405180910390fd5b818061312690614329565b925050808061313490614329565b91505061306b565b5080600181905550613151600087858861315f565b505050505050565b50505050565b50505050565b600080823b905060008111915050919050565b828054613184906142c6565b90600052602060002090601f0160209004810192826131a657600085556131ed565b82601f106131bf57805160ff19168380011785556131ed565b828001600101855582156131ed579182015b828111156131ec5782518255916020019190600101906131d1565b5b5090506131fa9190613238565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b80821115613251576000816000905550600101613239565b5090565b600061326861326384613f82565b613f5d565b90508281526020810184848401111561328457613283614493565b5b61328f84828561425a565b509392505050565b60006132aa6132a584613fb3565b613f5d565b9050828152602081018484840111156132c6576132c5614493565b5b6132d184828561425a565b509392505050565b6000813590506132e881614bb2565b92915050565b6000813590506132fd81614bc9565b92915050565b60008135905061331281614be0565b92915050565b60008151905061332781614be0565b92915050565b600082601f8301126133425761334161448e565b5b8135613352848260208601613255565b91505092915050565b600082601f8301126133705761336f61448e565b5b8135613380848260208601613297565b91505092915050565b60008135905061339881614bf7565b92915050565b6000602082840312156133b4576133b361449d565b5b60006133c2848285016132d9565b91505092915050565b600080604083850312156133e2576133e161449d565b5b60006133f0858286016132d9565b9250506020613401858286016132d9565b9150509250929050565b6000806000606084860312156134245761342361449d565b5b6000613432868287016132d9565b9350506020613443868287016132d9565b925050604061345486828701613389565b9150509250925092565b600080600080608085870312156134785761347761449d565b5b6000613486878288016132d9565b9450506020613497878288016132d9565b93505060406134a887828801613389565b925050606085013567ffffffffffffffff8111156134c9576134c8614498565b5b6134d58782880161332d565b91505092959194509250565b600080604083850312156134f8576134f761449d565b5b6000613506858286016132d9565b9250506020613517858286016132ee565b9150509250929050565b600080604083850312156135385761353761449d565b5b6000613546858286016132d9565b925050602061355785828601613389565b9150509250929050565b6000602082840312156135775761357661449d565b5b600061358584828501613303565b91505092915050565b6000602082840312156135a4576135a361449d565b5b60006135b284828501613318565b91505092915050565b6000602082840312156135d1576135d061449d565b5b600082013567ffffffffffffffff8111156135ef576135ee614498565b5b6135fb8482850161335b565b91505092915050565b60006020828403121561361a5761361961449d565b5b600061362884828501613389565b91505092915050565b61363a816141b6565b82525050565b613649816141b6565b82525050565b613658816141c8565b82525050565b600061366982613fe4565b6136738185613ffa565b9350613683818560208601614269565b61368c816144a2565b840191505092915050565b60006136a282613fef565b6136ac818561400b565b93506136bc818560208601614269565b6136c5816144a2565b840191505092915050565b60006136db82613fef565b6136e5818561401c565b93506136f5818560208601614269565b80840191505092915050565b600061370e60228361400b565b9150613719826144b3565b604082019050919050565b600061373160268361400b565b915061373c82614502565b604082019050919050565b6000613754602a8361400b565b915061375f82614551565b604082019050919050565b600061377760238361400b565b9150613782826145a0565b604082019050919050565b600061379a60258361400b565b91506137a5826145ef565b604082019050919050565b60006137bd60318361400b565b91506137c88261463e565b604082019050919050565b60006137e060128361400b565b91506137eb8261468d565b602082019050919050565b6000613803601e8361400b565b915061380e826146b6565b602082019050919050565b600061382660398361400b565b9150613831826146df565b604082019050919050565b6000613849602b8361400b565b91506138548261472e565b604082019050919050565b600061386c60128361400b565b91506138778261477d565b602082019050919050565b600061388f60268361400b565b915061389a826147a6565b604082019050919050565b60006138b260208361400b565b91506138bd826147f5565b602082019050919050565b60006138d5602f8361400b565b91506138e08261481e565b604082019050919050565b60006138f8601a8361400b565b91506139038261486d565b602082019050919050565b600061391b60328361400b565b915061392682614896565b604082019050919050565b600061393e60228361400b565b9150613949826148e5565b604082019050919050565b600061396160338361400b565b915061396c82614934565b604082019050919050565b600061398460168361400b565b915061398f82614983565b602082019050919050565b60006139a7601d8361400b565b91506139b2826149ac565b602082019050919050565b60006139ca60218361400b565b91506139d5826149d5565b604082019050919050565b60006139ed60168361400b565b91506139f882614a24565b602082019050919050565b6000613a10602e8361400b565b9150613a1b82614a4d565b604082019050919050565b6000613a33601f8361400b565b9150613a3e82614a9c565b602082019050919050565b6000613a56602f8361400b565b9150613a6182614ac5565b604082019050919050565b6000613a79602d8361400b565b9150613a8482614b14565b604082019050919050565b6000613a9c60228361400b565b9150613aa782614b63565b604082019050919050565b604082016000820151613ac86000850182613631565b506020820151613adb6020850182613af0565b50505050565b613aea8161423c565b82525050565b613af981614246565b82525050565b6000613b0b82856136d0565b9150613b1782846136d0565b91508190509392505050565b6000602082019050613b386000830184613640565b92915050565b6000608082019050613b536000830187613640565b613b606020830186613640565b613b6d6040830185613ae1565b8181036060830152613b7f818461365e565b905095945050505050565b6000602082019050613b9f600083018461364f565b92915050565b60006020820190508181036000830152613bbf8184613697565b905092915050565b60006020820190508181036000830152613be081613701565b9050919050565b60006020820190508181036000830152613c0081613724565b9050919050565b60006020820190508181036000830152613c2081613747565b9050919050565b60006020820190508181036000830152613c408161376a565b9050919050565b60006020820190508181036000830152613c608161378d565b9050919050565b60006020820190508181036000830152613c80816137b0565b9050919050565b60006020820190508181036000830152613ca0816137d3565b9050919050565b60006020820190508181036000830152613cc0816137f6565b9050919050565b60006020820190508181036000830152613ce081613819565b9050919050565b60006020820190508181036000830152613d008161383c565b9050919050565b60006020820190508181036000830152613d208161385f565b9050919050565b60006020820190508181036000830152613d4081613882565b9050919050565b60006020820190508181036000830152613d60816138a5565b9050919050565b60006020820190508181036000830152613d80816138c8565b9050919050565b60006020820190508181036000830152613da0816138eb565b9050919050565b60006020820190508181036000830152613dc08161390e565b9050919050565b60006020820190508181036000830152613de081613931565b9050919050565b60006020820190508181036000830152613e0081613954565b9050919050565b60006020820190508181036000830152613e2081613977565b9050919050565b60006020820190508181036000830152613e408161399a565b9050919050565b60006020820190508181036000830152613e60816139bd565b9050919050565b60006020820190508181036000830152613e80816139e0565b9050919050565b60006020820190508181036000830152613ea081613a03565b9050919050565b60006020820190508181036000830152613ec081613a26565b9050919050565b60006020820190508181036000830152613ee081613a49565b9050919050565b60006020820190508181036000830152613f0081613a6c565b9050919050565b60006020820190508181036000830152613f2081613a8f565b9050919050565b6000604082019050613f3c6000830184613ab2565b92915050565b6000602082019050613f576000830184613ae1565b92915050565b6000613f67613f78565b9050613f7382826142f8565b919050565b6000604051905090565b600067ffffffffffffffff821115613f9d57613f9c61445f565b5b613fa6826144a2565b9050602081019050919050565b600067ffffffffffffffff821115613fce57613fcd61445f565b5b613fd7826144a2565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061403282614200565b915061403d83614200565b9250826fffffffffffffffffffffffffffffffff03821115614062576140616143a3565b5b828201905092915050565b60006140788261423c565b91506140838361423c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140b8576140b76143a3565b5b828201905092915050565b60006140ce8261423c565b91506140d98361423c565b9250826140e9576140e86143d2565b5b828204905092915050565b60006140ff8261423c565b915061410a8361423c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614143576141426143a3565b5b828202905092915050565b600061415982614200565b915061416483614200565b925082821015614177576141766143a3565b5b828203905092915050565b600061418d8261423c565b91506141988361423c565b9250828210156141ab576141aa6143a3565b5b828203905092915050565b60006141c18261421c565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561428757808201518184015260208101905061426c565b83811115614296576000848401525b50505050565b60006142a78261423c565b915060008214156142bb576142ba6143a3565b5b600182039050919050565b600060028204905060018216806142de57607f821691505b602082108114156142f2576142f1614401565b5b50919050565b614301826144a2565b810181811067ffffffffffffffff821117156143205761431f61445f565b5b80604052505050565b60006143348261423c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614367576143666143a3565b5b600182019050919050565b600061437d8261423c565b91506143888361423c565b925082614398576143976143d2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f53616c65206973206e6f74204163746976650000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f72656163686564206d617820737570706c790000000000000000000000000000600082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f4e65656420746f2073656e64206d6f7265204554482e00000000000000000000600082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f63616e206e6f74206d696e742074686973206d616e7900000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b614bbb816141b6565b8114614bc657600080fd5b50565b614bd2816141c8565b8114614bdd57600080fd5b50565b614be9816141d4565b8114614bf457600080fd5b50565b614c008161423c565b8114614c0b57600080fd5b5056fea2646970667358221220a584eba5f19c10b5af8bd0943a38b777cb2bdc60f2e7d3baa9cec143989c4e5064736f6c6343000807003368747470733a2f2f6f6374617261696465722e6d7970696e6174612e636c6f75642f697066732f516d65435a6732716574346d4c6f62634a746a6b6f543463787742765a5135676a6a614d48474752536564324b64

Deployed Bytecode

0x6080604052600436106102255760003560e01c806370a0823111610123578063ac446002116100ab578063d04950a11161006f578063d04950a1146107e2578063d7224ba01461080d578063dc33e68114610838578063e985e9c514610875578063f2fde38b146108b257610225565b8063ac44600214610725578063af7b26e91461073c578063b88d4fde14610765578063bd0a84391461078e578063c87b56dd146107a557610225565b80639231ab2a116100f25780639231ab2a1461064d57806395d89b411461068a57806398d5fdca146106b5578063a0712d68146106e0578063a22cb465146106fc57610225565b806370a08231146105a3578063715018a6146105e05780638d859f3e146105f75780638da5cb5b1461062257610225565b80633fd17366116101b157806355f804b31161017557806355f804b3146104c05780635c37809d146104e957806362c6f7b9146105125780636352211e1461053d57806369ba1a751461057a57610225565b80633fd17366146103dd5780634256dbe31461040657806342842e0e1461042f5780634e69d560146104585780634f6ccce71461048357610225565b8063095ea7b3116101f8578063095ea7b3146102f857806318160ddd14610321578063200d2ed21461034c57806323b872dd146103775780632f745c59146103a057610225565b806301ffc9a71461022a578063050225ea1461026757806306fdde0314610290578063081812fc146102bb575b600080fd5b34801561023657600080fd5b50610251600480360381019061024c9190613561565b6108db565b60405161025e9190613b8a565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190613521565b610a25565b005b34801561029c57600080fd5b506102a5610aaf565b6040516102b29190613ba5565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190613604565b610b41565b6040516102ef9190613b23565b60405180910390f35b34801561030457600080fd5b5061031f600480360381019061031a9190613521565b610bc6565b005b34801561032d57600080fd5b50610336610cdf565b6040516103439190613f42565b60405180910390f35b34801561035857600080fd5b50610361610ce9565b60405161036e9190613f42565b60405180910390f35b34801561038357600080fd5b5061039e6004803603810190610399919061340b565b610cef565b005b3480156103ac57600080fd5b506103c760048036038101906103c29190613521565b610cff565b6040516103d49190613f42565b60405180910390f35b3480156103e957600080fd5b5061040460048036038101906103ff9190613604565b610efd565b005b34801561041257600080fd5b5061042d60048036038101906104289190613604565b610f83565b005b34801561043b57600080fd5b506104566004803603810190610451919061340b565b611009565b005b34801561046457600080fd5b5061046d611029565b60405161047a9190613f42565b60405180910390f35b34801561048f57600080fd5b506104aa60048036038101906104a59190613604565b611033565b6040516104b79190613f42565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906135bb565b611086565b005b3480156104f557600080fd5b50610510600480360381019061050b91906135bb565b61111c565b005b34801561051e57600080fd5b506105276111b2565b6040516105349190613b8a565b60405180910390f35b34801561054957600080fd5b50610564600480360381019061055f9190613604565b6111c5565b6040516105719190613b23565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613604565b6111db565b005b3480156105af57600080fd5b506105ca60048036038101906105c5919061339e565b611261565b6040516105d79190613f42565b60405180910390f35b3480156105ec57600080fd5b506105f561134a565b005b34801561060357600080fd5b5061060c6113d2565b6040516106199190613f42565b60405180910390f35b34801561062e57600080fd5b506106376113d8565b6040516106449190613b23565b60405180910390f35b34801561065957600080fd5b50610674600480360381019061066f9190613604565b611401565b6040516106819190613f27565b60405180910390f35b34801561069657600080fd5b5061069f611419565b6040516106ac9190613ba5565b60405180910390f35b3480156106c157600080fd5b506106ca6114ab565b6040516106d79190613f42565b60405180910390f35b6106fa60048036038101906106f59190613604565b6114b5565b005b34801561070857600080fd5b50610723600480360381019061071e91906134e1565b61168c565b005b34801561073157600080fd5b5061073a61180d565b005b34801561074857600080fd5b50610763600480360381019061075e9190613604565b6119b3565b005b34801561077157600080fd5b5061078c6004803603810190610787919061345e565b611a39565b005b34801561079a57600080fd5b506107a3611a95565b005b3480156107b157600080fd5b506107cc60048036038101906107c79190613604565b611b3d565b6040516107d99190613ba5565b60405180910390f35b3480156107ee57600080fd5b506107f7611c8c565b6040516108049190613f42565b60405180910390f35b34801561081957600080fd5b50610822611c92565b60405161082f9190613f42565b60405180910390f35b34801561084457600080fd5b5061085f600480360381019061085a919061339e565b611c98565b60405161086c9190613f42565b60405180910390f35b34801561088157600080fd5b5061089c600480360381019061089791906133cb565b611caa565b6040516108a99190613b8a565b60405180910390f35b3480156108be57600080fd5b506108d960048036038101906108d4919061339e565b611d3e565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109a657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a0e57507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610a1e5750610a1d82611e36565b5b9050919050565b610a2d611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610a4b6113d8565b73ffffffffffffffffffffffffffffffffffffffff1614610aa1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a9890613d47565b60405180910390fd5b610aab8282611ea8565b5050565b606060028054610abe906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054610aea906142c6565b8015610b375780601f10610b0c57610100808354040283529160200191610b37565b820191906000526020600020905b815481529060010190602001808311610b1a57829003601f168201915b5050505050905090565b6000610b4c82611ec6565b610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8290613ee7565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610bd1826111c5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3990613dc7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610c61611ea0565b73ffffffffffffffffffffffffffffffffffffffff161480610c905750610c8f81610c8a611ea0565b611caa565b5b610ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc690613cc7565b60405180910390fd5b610cda838383611ed4565b505050565b6000600154905090565b60105481565b610cfa838383611f86565b505050565b6000610d0a83611261565b8210610d4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4290613bc7565b60405180910390fd5b6000610d55610cdf565b905060008060005b83811015610ebb576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610e4f57806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ea75786841415610e98578195505050505050610ef7565b8380610ea390614329565b9450505b508080610eb390614329565b915050610d5d565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eee90613e87565b60405180910390fd5b92915050565b610f05611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610f236113d8565b73ffffffffffffffffffffffffffffffffffffffff1614610f79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7090613d47565b60405180910390fd5b80600b8190555050565b610f8b611ea0565b73ffffffffffffffffffffffffffffffffffffffff16610fa96113d8565b73ffffffffffffffffffffffffffffffffffffffff1614610fff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff690613d47565b60405180910390fd5b80600f8190555050565b61102483838360405180602001604052806000815250611a39565b505050565b6000601054905090565b600061103d610cdf565b821061107e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107590613c27565b60405180910390fd5b819050919050565b61108e611ea0565b73ffffffffffffffffffffffffffffffffffffffff166110ac6113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611102576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f990613d47565b60405180910390fd5b80600d9080519060200190611118929190613178565b5050565b611124611ea0565b73ffffffffffffffffffffffffffffffffffffffff166111426113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118f90613d47565b60405180910390fd5b80600e90805190602001906111ae929190613178565b5050565b600c60009054906101000a900460ff1681565b60006111d08261253f565b600001519050919050565b6111e3611ea0565b73ffffffffffffffffffffffffffffffffffffffff166112016113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611257576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124e90613d47565b60405180910390fd5b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990613ce7565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b611352611ea0565b73ffffffffffffffffffffffffffffffffffffffff166113706113d8565b73ffffffffffffffffffffffffffffffffffffffff16146113c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bd90613d47565b60405180910390fd5b6113d06000612742565b565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6114096131fe565b6114128261253f565b9050919050565b606060038054611428906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611454906142c6565b80156114a15780601f10611476576101008083540402835291602001916114a1565b820191906000526020600020905b81548152906001019060200180831161148457829003601f168201915b5050505050905090565b6000600b54905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613ca7565b60405180910390fd5b600260105414611568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155f90613c87565b60405180910390fd5b600f547f00000000000000000000000000000000000000000000000000000000000022b86115969190614182565b8161159f610cdf565b6115a9919061406d565b11156115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613d07565b60405180910390fd5b600a5481111561162f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162690613e67565b60405180910390fd5b80600b5461163d91906140f4565b34101561167f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167690613e07565b60405180910390fd5b6116893382611ea8565b50565b611694611ea0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611702576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f990613d87565b60405180910390fd5b806007600061170f611ea0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff166117bc611ea0565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118019190613b8a565b60405180910390a35050565b611815611ea0565b73ffffffffffffffffffffffffffffffffffffffff166118336113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611889576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188090613d47565b60405180910390fd5b600260095414156118cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c690613ea7565b60405180910390fd5b60026009819055506000479050600060146103e8836118ee91906140c3565b6118f891906140f4565b90507377e5c0704d9681765d9c7204d66e5110c6556ddd73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611954573d6000803e3d6000fd5b503373ffffffffffffffffffffffffffffffffffffffff166108fc828461197b9190614182565b9081150290604051600060405180830381858888f193505050501580156119a6573d6000803e3d6000fd5b5050506001600981905550565b6119bb611ea0565b73ffffffffffffffffffffffffffffffffffffffff166119d96113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611a2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a2690613d47565b60405180910390fd5b80600a8190555050565b611a44848484611f86565b611a5084848484612806565b611a8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8690613de7565b60405180910390fd5b50505050565b611a9d611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611abb6113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611b11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0890613d47565b60405180910390fd5b600c60009054906101000a900460ff1615600c60006101000a81548160ff021916908315150217905550565b6060611b4882611ec6565b611b87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7e90613d67565b60405180910390fd5b600c60009054906101000a900460ff1615611bf9576000611ba661299d565b90506000815111611bc65760405180602001604052806000815250611bf1565b80611bd084612a2f565b604051602001611be1929190613aff565b6040516020818303038152906040525b915050611c87565b600e8054611c06906142c6565b80601f0160208091040260200160405190810160405280929190818152602001828054611c32906142c6565b8015611c7f5780601f10611c5457610100808354040283529160200191611c7f565b820191906000526020600020905b815481529060010190602001808311611c6257829003601f168201915b505050505090505b919050565b600a5481565b60085481565b6000611ca382612b90565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d46611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611d646113d8565b73ffffffffffffffffffffffffffffffffffffffff1614611dba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db190613d47565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2190613be7565b60405180910390fd5b611e3381612742565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b611ec2828260405180602001604052806000815250612c79565b5050565b600060015482109050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000611f918261253f565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff16611fb8611ea0565b73ffffffffffffffffffffffffffffffffffffffff1614806120145750611fdd611ea0565b73ffffffffffffffffffffffffffffffffffffffff16611ffc84610b41565b73ffffffffffffffffffffffffffffffffffffffff16145b80612030575061202f826000015161202a611ea0565b611caa565b5b905080612072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206990613da7565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146120e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120db90613d27565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612154576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214b90613c47565b60405180910390fd5b6121618585856001613159565b6121716000848460000151611ed4565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166121df919061414e565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166122839190614027565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050506000600184612389919061406d565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156124cf576123ff81611ec6565b156124ce576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612537868686600161315f565b505050505050565b6125476131fe565b61255082611ec6565b61258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258690613c07565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000003283106125f35760017f0000000000000000000000000000000000000000000000000000000000000032846125e69190614182565b6125f0919061406d565b90505b60008390505b818110612701576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146126ed5780935050505061273d565b5080806126f99061429c565b9150506125f9565b506040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273490613ec7565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006128278473ffffffffffffffffffffffffffffffffffffffff16613165565b15612990578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612850611ea0565b8786866040518563ffffffff1660e01b81526004016128729493929190613b3e565b602060405180830381600087803b15801561288c57600080fd5b505af19250505080156128bd57506040513d601f19601f820116820180604052508101906128ba919061358e565b60015b612940573d80600081146128ed576040519150601f19603f3d011682016040523d82523d6000602084013e6128f2565b606091505b50600081511415612938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161292f90613de7565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612995565b600190505b949350505050565b6060600d80546129ac906142c6565b80601f01602080910402602001604051908101604052809291908181526020018280546129d8906142c6565b8015612a255780601f106129fa57610100808354040283529160200191612a25565b820191906000526020600020905b815481529060010190602001808311612a0857829003601f168201915b5050505050905090565b60606000821415612a77576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612b8b565b600082905060005b60008214612aa9578080612a9290614329565b915050600a82612aa291906140c3565b9150612a7f565b60008167ffffffffffffffff811115612ac557612ac461445f565b5b6040519080825280601f01601f191660200182016040528015612af75781602001600182028036833780820191505090505b5090505b60008514612b8457600182612b109190614182565b9150600a85612b1f9190614372565b6030612b2b919061406d565b60f81b818381518110612b4157612b40614430565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612b7d91906140c3565b9450612afb565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bf890613c67565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612cf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce790613e47565b60405180910390fd5b612cf981611ec6565b15612d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3090613e27565b60405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000032831115612d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d9390613f07565b60405180910390fd5b612da96000858386613159565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff168152505090506040518060400160405280858360000151612ea69190614027565b6fffffffffffffffffffffffffffffffff168152602001858360200151612ecd9190614027565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561313c57818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46130dc6000888488612806565b61311b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311290613de7565b60405180910390fd5b818061312690614329565b925050808061313490614329565b91505061306b565b5080600181905550613151600087858861315f565b505050505050565b50505050565b50505050565b600080823b905060008111915050919050565b828054613184906142c6565b90600052602060002090601f0160209004810192826131a657600085556131ed565b82601f106131bf57805160ff19168380011785556131ed565b828001600101855582156131ed579182015b828111156131ec5782518255916020019190600101906131d1565b5b5090506131fa9190613238565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b80821115613251576000816000905550600101613239565b5090565b600061326861326384613f82565b613f5d565b90508281526020810184848401111561328457613283614493565b5b61328f84828561425a565b509392505050565b60006132aa6132a584613fb3565b613f5d565b9050828152602081018484840111156132c6576132c5614493565b5b6132d184828561425a565b509392505050565b6000813590506132e881614bb2565b92915050565b6000813590506132fd81614bc9565b92915050565b60008135905061331281614be0565b92915050565b60008151905061332781614be0565b92915050565b600082601f8301126133425761334161448e565b5b8135613352848260208601613255565b91505092915050565b600082601f8301126133705761336f61448e565b5b8135613380848260208601613297565b91505092915050565b60008135905061339881614bf7565b92915050565b6000602082840312156133b4576133b361449d565b5b60006133c2848285016132d9565b91505092915050565b600080604083850312156133e2576133e161449d565b5b60006133f0858286016132d9565b9250506020613401858286016132d9565b9150509250929050565b6000806000606084860312156134245761342361449d565b5b6000613432868287016132d9565b9350506020613443868287016132d9565b925050604061345486828701613389565b9150509250925092565b600080600080608085870312156134785761347761449d565b5b6000613486878288016132d9565b9450506020613497878288016132d9565b93505060406134a887828801613389565b925050606085013567ffffffffffffffff8111156134c9576134c8614498565b5b6134d58782880161332d565b91505092959194509250565b600080604083850312156134f8576134f761449d565b5b6000613506858286016132d9565b9250506020613517858286016132ee565b9150509250929050565b600080604083850312156135385761353761449d565b5b6000613546858286016132d9565b925050602061355785828601613389565b9150509250929050565b6000602082840312156135775761357661449d565b5b600061358584828501613303565b91505092915050565b6000602082840312156135a4576135a361449d565b5b60006135b284828501613318565b91505092915050565b6000602082840312156135d1576135d061449d565b5b600082013567ffffffffffffffff8111156135ef576135ee614498565b5b6135fb8482850161335b565b91505092915050565b60006020828403121561361a5761361961449d565b5b600061362884828501613389565b91505092915050565b61363a816141b6565b82525050565b613649816141b6565b82525050565b613658816141c8565b82525050565b600061366982613fe4565b6136738185613ffa565b9350613683818560208601614269565b61368c816144a2565b840191505092915050565b60006136a282613fef565b6136ac818561400b565b93506136bc818560208601614269565b6136c5816144a2565b840191505092915050565b60006136db82613fef565b6136e5818561401c565b93506136f5818560208601614269565b80840191505092915050565b600061370e60228361400b565b9150613719826144b3565b604082019050919050565b600061373160268361400b565b915061373c82614502565b604082019050919050565b6000613754602a8361400b565b915061375f82614551565b604082019050919050565b600061377760238361400b565b9150613782826145a0565b604082019050919050565b600061379a60258361400b565b91506137a5826145ef565b604082019050919050565b60006137bd60318361400b565b91506137c88261463e565b604082019050919050565b60006137e060128361400b565b91506137eb8261468d565b602082019050919050565b6000613803601e8361400b565b915061380e826146b6565b602082019050919050565b600061382660398361400b565b9150613831826146df565b604082019050919050565b6000613849602b8361400b565b91506138548261472e565b604082019050919050565b600061386c60128361400b565b91506138778261477d565b602082019050919050565b600061388f60268361400b565b915061389a826147a6565b604082019050919050565b60006138b260208361400b565b91506138bd826147f5565b602082019050919050565b60006138d5602f8361400b565b91506138e08261481e565b604082019050919050565b60006138f8601a8361400b565b91506139038261486d565b602082019050919050565b600061391b60328361400b565b915061392682614896565b604082019050919050565b600061393e60228361400b565b9150613949826148e5565b604082019050919050565b600061396160338361400b565b915061396c82614934565b604082019050919050565b600061398460168361400b565b915061398f82614983565b602082019050919050565b60006139a7601d8361400b565b91506139b2826149ac565b602082019050919050565b60006139ca60218361400b565b91506139d5826149d5565b604082019050919050565b60006139ed60168361400b565b91506139f882614a24565b602082019050919050565b6000613a10602e8361400b565b9150613a1b82614a4d565b604082019050919050565b6000613a33601f8361400b565b9150613a3e82614a9c565b602082019050919050565b6000613a56602f8361400b565b9150613a6182614ac5565b604082019050919050565b6000613a79602d8361400b565b9150613a8482614b14565b604082019050919050565b6000613a9c60228361400b565b9150613aa782614b63565b604082019050919050565b604082016000820151613ac86000850182613631565b506020820151613adb6020850182613af0565b50505050565b613aea8161423c565b82525050565b613af981614246565b82525050565b6000613b0b82856136d0565b9150613b1782846136d0565b91508190509392505050565b6000602082019050613b386000830184613640565b92915050565b6000608082019050613b536000830187613640565b613b606020830186613640565b613b6d6040830185613ae1565b8181036060830152613b7f818461365e565b905095945050505050565b6000602082019050613b9f600083018461364f565b92915050565b60006020820190508181036000830152613bbf8184613697565b905092915050565b60006020820190508181036000830152613be081613701565b9050919050565b60006020820190508181036000830152613c0081613724565b9050919050565b60006020820190508181036000830152613c2081613747565b9050919050565b60006020820190508181036000830152613c408161376a565b9050919050565b60006020820190508181036000830152613c608161378d565b9050919050565b60006020820190508181036000830152613c80816137b0565b9050919050565b60006020820190508181036000830152613ca0816137d3565b9050919050565b60006020820190508181036000830152613cc0816137f6565b9050919050565b60006020820190508181036000830152613ce081613819565b9050919050565b60006020820190508181036000830152613d008161383c565b9050919050565b60006020820190508181036000830152613d208161385f565b9050919050565b60006020820190508181036000830152613d4081613882565b9050919050565b60006020820190508181036000830152613d60816138a5565b9050919050565b60006020820190508181036000830152613d80816138c8565b9050919050565b60006020820190508181036000830152613da0816138eb565b9050919050565b60006020820190508181036000830152613dc08161390e565b9050919050565b60006020820190508181036000830152613de081613931565b9050919050565b60006020820190508181036000830152613e0081613954565b9050919050565b60006020820190508181036000830152613e2081613977565b9050919050565b60006020820190508181036000830152613e408161399a565b9050919050565b60006020820190508181036000830152613e60816139bd565b9050919050565b60006020820190508181036000830152613e80816139e0565b9050919050565b60006020820190508181036000830152613ea081613a03565b9050919050565b60006020820190508181036000830152613ec081613a26565b9050919050565b60006020820190508181036000830152613ee081613a49565b9050919050565b60006020820190508181036000830152613f0081613a6c565b9050919050565b60006020820190508181036000830152613f2081613a8f565b9050919050565b6000604082019050613f3c6000830184613ab2565b92915050565b6000602082019050613f576000830184613ae1565b92915050565b6000613f67613f78565b9050613f7382826142f8565b919050565b6000604051905090565b600067ffffffffffffffff821115613f9d57613f9c61445f565b5b613fa6826144a2565b9050602081019050919050565b600067ffffffffffffffff821115613fce57613fcd61445f565b5b613fd7826144a2565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061403282614200565b915061403d83614200565b9250826fffffffffffffffffffffffffffffffff03821115614062576140616143a3565b5b828201905092915050565b60006140788261423c565b91506140838361423c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156140b8576140b76143a3565b5b828201905092915050565b60006140ce8261423c565b91506140d98361423c565b9250826140e9576140e86143d2565b5b828204905092915050565b60006140ff8261423c565b915061410a8361423c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614143576141426143a3565b5b828202905092915050565b600061415982614200565b915061416483614200565b925082821015614177576141766143a3565b5b828203905092915050565b600061418d8261423c565b91506141988361423c565b9250828210156141ab576141aa6143a3565b5b828203905092915050565b60006141c18261421c565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561428757808201518184015260208101905061426c565b83811115614296576000848401525b50505050565b60006142a78261423c565b915060008214156142bb576142ba6143a3565b5b600182039050919050565b600060028204905060018216806142de57607f821691505b602082108114156142f2576142f1614401565b5b50919050565b614301826144a2565b810181811067ffffffffffffffff821117156143205761431f61445f565b5b80604052505050565b60006143348261423c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415614367576143666143a3565b5b600182019050919050565b600061437d8261423c565b91506143888361423c565b925082614398576143976143d2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f53616c65206973206e6f74204163746976650000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f72656163686564206d617820737570706c790000000000000000000000000000600082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f4e65656420746f2073656e64206d6f7265204554482e00000000000000000000600082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f63616e206e6f74206d696e742074686973206d616e7900000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b614bbb816141b6565b8114614bc657600080fd5b50565b614bd2816141c8565b8114614bdd57600080fd5b50565b614be9816141d4565b8114614bf457600080fd5b50565b614c008161423c565b8114614c0b57600080fd5b5056fea2646970667358221220a584eba5f19c10b5af8bd0943a38b777cb2bdc60f2e7d3baa9cec143989c4e5064736f6c63430008070033

Deployed Bytecode Sourcemap

20134:3260:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11451:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23233:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13023:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14224:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13840:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10421:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20646:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14907:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10702:744;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22797:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23317:74;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15054:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23081:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10520:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21953:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21848:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20511:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12900:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23005:72;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11826:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2910:103;;;;;;;;;;;;;:::i;:::-;;20312:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2687:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22278:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13122:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23158:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21030:392;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14433:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22429:277;;;;;;;;;;;;;:::i;:::-;;22899:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15216:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22710:83;;;;;;;;;;;;;:::i;:::-;;21429:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20230:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18346:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22167:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14714:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3022:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11451:370;11578:4;11623:25;11608:40;;;:11;:40;;;;:99;;;;11674:33;11659:48;;;:11;:48;;;;11608:99;:160;;;;11733:35;11718:50;;;:11;:50;;;;11608:160;:207;;;;11779:36;11803:11;11779:23;:36::i;:::-;11608:207;11594:221;;11451:370;;;:::o;23233:80::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23292:15:::1;23302:1;23305;23292:9;:15::i;:::-;23233:80:::0;;:::o;13023:94::-;13077:13;13106:5;13099:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13023:94;:::o;14224:204::-;14292:7;14316:16;14324:7;14316;:16::i;:::-;14308:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14398:15;:24;14414:7;14398:24;;;;;;;;;;;;;;;;;;;;;14391:31;;14224:204;;;:::o;13840:379::-;13909:13;13925:24;13941:7;13925:15;:24::i;:::-;13909:40;;13970:5;13964:11;;:2;:11;;;;13956:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;14055:5;14039:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;14064:37;14081:5;14088:12;:10;:12::i;:::-;14064:16;:37::i;:::-;14039:62;14023:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;14185:28;14194:2;14198:7;14207:5;14185:8;:28::i;:::-;13902:317;13840:379;;:::o;10421:94::-;10474:7;10497:12;;10490:19;;10421:94;:::o;20646:22::-;;;;:::o;14907:142::-;15015:28;15025:4;15031:2;15035:7;15015:9;:28::i;:::-;14907:142;;;:::o;10702:744::-;10811:7;10846:16;10856:5;10846:9;:16::i;:::-;10838:5;:24;10830:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10908:22;10933:13;:11;:13::i;:::-;10908:38;;10953:19;10983:25;11033:9;11028:350;11052:14;11048:1;:18;11028:350;;;11082:31;11116:11;:14;11128:1;11116:14;;;;;;;;;;;11082:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11169:1;11143:28;;:9;:14;;;:28;;;11139:89;;11204:9;:14;;;11184:34;;11139:89;11261:5;11240:26;;:17;:26;;;11236:135;;;11298:5;11283:11;:20;11279:59;;;11325:1;11318:8;;;;;;;;;11279:59;11348:13;;;;;:::i;:::-;;;;11236:135;11073:305;11068:3;;;;;:::i;:::-;;;;11028:350;;;;11384:56;;;;;;;;;;:::i;:::-;;;;;;;;10702:744;;;;;:::o;22797:98::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22880:9:::1;22872:5;:17;;;;22797:98:::0;:::o;23317:74::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23384:1:::1;23374:7;:11;;;;23317:74:::0;:::o;15054:157::-;15166:39;15183:4;15189:2;15193:7;15166:39;;;;;;;;;;;;:16;:39::i;:::-;15054:157;;;:::o;23081:73::-;23121:4;23142:6;;23135:13;;23081:73;:::o;10520:177::-;10587:7;10619:13;:11;:13::i;:::-;10611:5;:21;10603:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10686:5;10679:12;;10520:177;;;:::o;21953:98::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22038:7:::1;22022:13;:23;;;;;;;;;;;;:::i;:::-;;21953:98:::0;:::o;21848:99::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21938:3:::1;21920:15;:21;;;;;;;;;;;;:::i;:::-;;21848:99:::0;:::o;20511:29::-;;;;;;;;;;;;;:::o;12900:118::-;12964:7;12987:20;12999:7;12987:11;:20::i;:::-;:25;;;12980:32;;12900:118;;;:::o;23005:72::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23070:1:::1;23061:6;:10;;;;23005:72:::0;:::o;11826:211::-;11890:7;11931:1;11914:19;;:5;:19;;;;11906:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12003:12;:19;12016:5;12003:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;11995:36;;11988:43;;11826:211;;;:::o;2910:103::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2975:30:::1;3002:1;2975:18;:30::i;:::-;2910:103::o:0;20312:34::-;;;;:::o;2687:87::-;2733:7;2760:6;;;;;;;;;;;2753:13;;2687:87;:::o;22278:147::-;22359:21;;:::i;:::-;22399:20;22411:7;22399:11;:20::i;:::-;22392:27;;22278:147;;;:::o;13122:98::-;13178:13;13207:7;13200:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13122:98;:::o;23158:71::-;23197:4;23218:5;;23211:12;;23158:71;:::o;21030:392::-;20964:10;20951:23;;:9;:23;;;20943:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;21117:1:::1;21107:6;;:11;21099:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;21202:7;;21185:14;:24;;;;:::i;:::-;21173:8;21157:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:52;;21149:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;21261:17;;21249:8;:29;;21239:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;21340:8;21332:5;;:16;;;;:::i;:::-;21319:9;:29;;21311:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;21382:31;21392:10;21404:8;21382:9;:31::i;:::-;21030:392:::0;:::o;14433:274::-;14536:12;:10;:12::i;:::-;14524:24;;:8;:24;;;;14516:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14633:8;14588:18;:32;14607:12;:10;:12::i;:::-;14588:32;;;;;;;;;;;;;;;:42;14621:8;14588:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;14682:8;14653:48;;14668:12;:10;:12::i;:::-;14653:48;;;14692:8;14653:48;;;;;;:::i;:::-;;;;;;;;14433:274;;:::o;22429:277::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;469:1:::1;615:7;;:19;;607:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;469:1;676:7;:18;;;;22493:12:::2;22508:21;22493:36;;22536:10;22566:2;22560:4;22550:7;:14;;;;:::i;:::-;22549:19;;;;:::i;:::-;22536:32;;22591:42;22583:60;;:67;22644:5;22583:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;22665:10;22657:28;;:43;22694:5;22686:7;:13;;;;:::i;:::-;22657:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;22486:220;;425:1:::1;719:7;:22;;;;22429:277::o:0;22899:102::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22994:1:::1;22974:17;:21;;;;22899:102:::0;:::o;15216:311::-;15353:28;15363:4;15369:2;15373:7;15353:9;:28::i;:::-;15404:48;15427:4;15433:2;15437:7;15446:5;15404:22;:48::i;:::-;15388:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15216:311;;;;:::o;22710:83::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22778:9:::1;;;;;;;;;;;22777:10;22765:9;;:22;;;;;;;;;;;;;;;;;;22710:83::o:0;21429:413::-;21502:13;21532:16;21540:7;21532;:16::i;:::-;21524:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;21609:9;;;;;;;;;;;21606:231;;;21626:21;21650:10;:8;:10::i;:::-;21626:34;;21705:1;21687:7;21681:21;:25;:104;;;;;;;;;;;;;;;;;21742:7;21751:18;:7;:16;:18::i;:::-;21725:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;21681:104;21667:118;;;;;21606:231;21814:15;21807:22;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21429:413;;;;:::o;20230:37::-;;;;:::o;18346:43::-;;;;:::o;22167:107::-;22225:7;22248:20;22262:5;22248:13;:20::i;:::-;22241:27;;22167:107;;;:::o;14714:186::-;14836:4;14859:18;:25;14878:5;14859:25;;;;;;;;;;;;;;;:35;14885:8;14859:35;;;;;;;;;;;;;;;;;;;;;;;;;14852:42;;14714:186;;;;:::o;3022:201::-;2832:12;:10;:12::i;:::-;2821:23;;:7;:5;:7::i;:::-;:23;;;2813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3131:1:::1;3111:22;;:8;:22;;;;3103:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3187:28;3206:8;3187:18;:28::i;:::-;3022:201:::0;:::o;7340:157::-;7425:4;7464:25;7449:40;;;:11;:40;;;;7442:47;;7340:157;;;:::o;2230:98::-;2283:7;2310:10;2303:17;;2230:98;:::o;15643:::-;15708:27;15718:2;15722:8;15708:27;;;;;;;;;;;;:9;:27::i;:::-;15643:98;;:::o;15532:105::-;15589:4;15619:12;;15609:7;:22;15602:29;;15532:105;;;:::o;18168:172::-;18292:2;18265:15;:24;18281:7;18265:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18326:7;18322:2;18306:28;;18315:5;18306:28;;;;;;;;;;;;18168:172;;;:::o;16903:1260::-;17000:35;17038:20;17050:7;17038:11;:20::i;:::-;17000:58;;17067:22;17109:13;:18;;;17093:34;;:12;:10;:12::i;:::-;:34;;;:81;;;;17162:12;:10;:12::i;:::-;17138:36;;:20;17150:7;17138:11;:20::i;:::-;:36;;;17093:81;:142;;;;17185:50;17202:13;:18;;;17222:12;:10;:12::i;:::-;17185:16;:50::i;:::-;17093:142;17067:169;;17261:17;17245:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17393:4;17371:26;;:13;:18;;;:26;;;17355:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;17482:1;17468:16;;:2;:16;;;;17460:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;17535:43;17557:4;17563:2;17567:7;17576:1;17535:21;:43::i;:::-;17586:49;17603:1;17607:7;17616:13;:18;;;17586:8;:49::i;:::-;17674:1;17644:12;:18;17657:4;17644:18;;;;;;;;;;;;;;;:26;;;:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17710:1;17682:12;:16;17695:2;17682:16;;;;;;;;;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17741:43;;;;;;;;17756:2;17741:43;;;;;;17767:15;17741:43;;;;;17718:11;:20;17730:7;17718:20;;;;;;;;;;;:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17792:19;17824:1;17814:7;:11;;;;:::i;:::-;17792:33;;17877:1;17836:43;;:11;:24;17848:11;17836:24;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;17832:236;;;17894:20;17902:11;17894:7;:20::i;:::-;17890:171;;;17954:97;;;;;;;;17981:13;:18;;;17954:97;;;;;;18012:13;:28;;;17954:97;;;;;17927:11;:24;17939:11;17927:24;;;;;;;;;;;:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17890:171;17832:236;18100:7;18096:2;18081:27;;18090:4;18081:27;;;;;;;;;;;;18115:42;18136:4;18142:2;18146:7;18155:1;18115:20;:42::i;:::-;16993:1170;;;16903:1260;;;:::o;12289:606::-;12365:21;;:::i;:::-;12406:16;12414:7;12406;:16::i;:::-;12398:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12478:26;12526:12;12515:7;:23;12511:93;;12595:1;12580:12;12570:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;12549:47;;12511:93;12617:12;12632:7;12617:22;;12612:212;12649:18;12641:4;:26;12612:212;;12686:31;12720:11;:17;12732:4;12720:17;;;;;;;;;;;12686:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12776:1;12750:28;;:9;:14;;;:28;;;12746:71;;12798:9;12791:16;;;;;;;12746:71;12677:147;12669:6;;;;;:::i;:::-;;;;12612:212;;;;12832:57;;;;;;;;;;:::i;:::-;;;;;;;;12289:606;;;;:::o;3232:191::-;3306:16;3325:6;;;;;;;;;;;3306:25;;3351:8;3342:6;;:17;;;;;;;;;;;;;;;;;;3406:8;3375:40;;3396:8;3375:40;;;;;;;;;;;;3295:128;3232:191;:::o;19146:690::-;19283:4;19300:15;:2;:13;;;:15::i;:::-;19296:535;;;19355:2;19339:36;;;19376:12;:10;:12::i;:::-;19390:4;19396:7;19405:5;19339:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;19326:464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19587:1;19570:6;:13;:18;19566:215;;;19603:61;;;;;;;;;;:::i;:::-;;;;;;;;19566:215;19749:6;19743:13;19734:6;19730:2;19726:15;19719:38;19326:464;19471:45;;;19461:55;;;:6;:55;;;;19454:62;;;;;19296:535;19819:4;19812:11;;19146:690;;;;;;;:::o;22055:108::-;22115:13;22144;22137:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22055:108;:::o;847:533::-;903:13;943:1;934:5;:10;930:53;;;961:10;;;;;;;;;;;;;;;;;;;;;930:53;993:12;1008:5;993:20;;1024:14;1049:78;1064:1;1056:4;:9;1049:78;;1082:8;;;;;:::i;:::-;;;;1113:2;1105:10;;;;;:::i;:::-;;;1049:78;;;1137:19;1169:6;1159:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1137:39;;1187:154;1203:1;1194:5;:10;1187:154;;1231:1;1221:11;;;;;:::i;:::-;;;1298:2;1290:5;:10;;;;:::i;:::-;1277:2;:24;;;;:::i;:::-;1264:39;;1247:6;1254;1247:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1327:2;1318:11;;;;;:::i;:::-;;;1187:154;;;1365:6;1351:21;;;;;847:533;;;;:::o;12043:240::-;12104:7;12153:1;12136:19;;:5;:19;;;;12120:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12244:12;:19;12257:5;12244:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;12236:41;;12229:48;;12043:240;;;:::o;15746:1152::-;15851:20;15874:12;;15851:35;;15915:1;15901:16;;:2;:16;;;;15893:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15972:21;15980:12;15972:7;:21::i;:::-;15971:22;15963:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16054:12;16042:8;:24;;16034:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16114:61;16144:1;16148:2;16152:12;16166:8;16114:21;:61::i;:::-;16184:30;16217:12;:16;16230:2;16217:16;;;;;;;;;;;;;;;16184:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16259:119;;;;;;;;16309:8;16279:11;:19;;;:39;;;;:::i;:::-;16259:119;;;;;;16362:8;16327:11;:24;;;:44;;;;:::i;:::-;16259:119;;;;;16240:12;:16;16253:2;16240:16;;;;;;;;;;;;;;;:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16413:43;;;;;;;;16428:2;16413:43;;;;;;16439:15;16413:43;;;;;16385:11;:25;16397:12;16385:25;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16465:20;16488:12;16465:35;;16514:9;16509:281;16533:8;16529:1;:12;16509:281;;;16587:12;16583:2;16562:38;;16579:1;16562:38;;;;;;;;;;;;16627:59;16658:1;16662:2;16666:12;16680:5;16627:22;:59::i;:::-;16609:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;16768:14;;;;;:::i;:::-;;;;16543:3;;;;;:::i;:::-;;;;16509:281;;;;16813:12;16798;:27;;;;16832:60;16861:1;16865:2;16869:12;16883:8;16832:20;:60::i;:::-;15844:1054;;;15746:1152;;;:::o;19841:141::-;;;;;:::o;19987:140::-;;;;;:::o;3455:197::-;3515:4;3533:12;3600:7;3588:20;3580:28;;3643:1;3636:4;:8;3629:15;;;3455:197;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:139::-;887:5;925:6;912:20;903:29;;941:33;968:5;941:33;:::i;:::-;841:139;;;;:::o;986:133::-;1029:5;1067:6;1054:20;1045:29;;1083:30;1107:5;1083:30;:::i;:::-;986:133;;;;:::o;1125:137::-;1170:5;1208:6;1195:20;1186:29;;1224:32;1250:5;1224:32;:::i;:::-;1125:137;;;;:::o;1268:141::-;1324:5;1355:6;1349:13;1340:22;;1371:32;1397:5;1371:32;:::i;:::-;1268:141;;;;:::o;1428:338::-;1483:5;1532:3;1525:4;1517:6;1513:17;1509:27;1499:122;;1540:79;;:::i;:::-;1499:122;1657:6;1644:20;1682:78;1756:3;1748:6;1741:4;1733:6;1729:17;1682:78;:::i;:::-;1673:87;;1489:277;1428:338;;;;:::o;1786:340::-;1842:5;1891:3;1884:4;1876:6;1872:17;1868:27;1858:122;;1899:79;;:::i;:::-;1858:122;2016:6;2003:20;2041:79;2116:3;2108:6;2101:4;2093:6;2089:17;2041:79;:::i;:::-;2032:88;;1848:278;1786:340;;;;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:329::-;2336:6;2385:2;2373:9;2364:7;2360:23;2356:32;2353:119;;;2391:79;;:::i;:::-;2353:119;2511:1;2536:53;2581:7;2572:6;2561:9;2557:22;2536:53;:::i;:::-;2526:63;;2482:117;2277:329;;;;:::o;2612:474::-;2680:6;2688;2737:2;2725:9;2716:7;2712:23;2708:32;2705:119;;;2743:79;;:::i;:::-;2705:119;2863:1;2888:53;2933:7;2924:6;2913:9;2909:22;2888:53;:::i;:::-;2878:63;;2834:117;2990:2;3016:53;3061:7;3052:6;3041:9;3037:22;3016:53;:::i;:::-;3006:63;;2961:118;2612:474;;;;;:::o;3092:619::-;3169:6;3177;3185;3234:2;3222:9;3213:7;3209:23;3205:32;3202:119;;;3240:79;;:::i;:::-;3202:119;3360:1;3385:53;3430:7;3421:6;3410:9;3406:22;3385:53;:::i;:::-;3375:63;;3331:117;3487:2;3513:53;3558:7;3549:6;3538:9;3534:22;3513:53;:::i;:::-;3503:63;;3458:118;3615:2;3641:53;3686:7;3677:6;3666:9;3662:22;3641:53;:::i;:::-;3631:63;;3586:118;3092:619;;;;;:::o;3717:943::-;3812:6;3820;3828;3836;3885:3;3873:9;3864:7;3860:23;3856:33;3853:120;;;3892:79;;:::i;:::-;3853:120;4012:1;4037:53;4082:7;4073:6;4062:9;4058:22;4037:53;:::i;:::-;4027:63;;3983:117;4139:2;4165:53;4210:7;4201:6;4190:9;4186:22;4165:53;:::i;:::-;4155:63;;4110:118;4267:2;4293:53;4338:7;4329:6;4318:9;4314:22;4293:53;:::i;:::-;4283:63;;4238:118;4423:2;4412:9;4408:18;4395:32;4454:18;4446:6;4443:30;4440:117;;;4476:79;;:::i;:::-;4440:117;4581:62;4635:7;4626:6;4615:9;4611:22;4581:62;:::i;:::-;4571:72;;4366:287;3717:943;;;;;;;:::o;4666:468::-;4731:6;4739;4788:2;4776:9;4767:7;4763:23;4759:32;4756:119;;;4794:79;;:::i;:::-;4756:119;4914:1;4939:53;4984:7;4975:6;4964:9;4960:22;4939:53;:::i;:::-;4929:63;;4885:117;5041:2;5067:50;5109:7;5100:6;5089:9;5085:22;5067:50;:::i;:::-;5057:60;;5012:115;4666:468;;;;;:::o;5140:474::-;5208:6;5216;5265:2;5253:9;5244:7;5240:23;5236:32;5233:119;;;5271:79;;:::i;:::-;5233:119;5391:1;5416:53;5461:7;5452:6;5441:9;5437:22;5416:53;:::i;:::-;5406:63;;5362:117;5518:2;5544:53;5589:7;5580:6;5569:9;5565:22;5544:53;:::i;:::-;5534:63;;5489:118;5140:474;;;;;:::o;5620:327::-;5678:6;5727:2;5715:9;5706:7;5702:23;5698:32;5695:119;;;5733:79;;:::i;:::-;5695:119;5853:1;5878:52;5922:7;5913:6;5902:9;5898:22;5878:52;:::i;:::-;5868:62;;5824:116;5620:327;;;;:::o;5953:349::-;6022:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:119;;;6077:79;;:::i;:::-;6039:119;6197:1;6222:63;6277:7;6268:6;6257:9;6253:22;6222:63;:::i;:::-;6212:73;;6168:127;5953:349;;;;:::o;6308:509::-;6377:6;6426:2;6414:9;6405:7;6401:23;6397:32;6394:119;;;6432:79;;:::i;:::-;6394:119;6580:1;6569:9;6565:17;6552:31;6610:18;6602:6;6599:30;6596:117;;;6632:79;;:::i;:::-;6596:117;6737:63;6792:7;6783:6;6772:9;6768:22;6737:63;:::i;:::-;6727:73;;6523:287;6308:509;;;;:::o;6823:329::-;6882:6;6931:2;6919:9;6910:7;6906:23;6902:32;6899:119;;;6937:79;;:::i;:::-;6899:119;7057:1;7082:53;7127:7;7118:6;7107:9;7103:22;7082:53;:::i;:::-;7072:63;;7028:117;6823:329;;;;:::o;7158:108::-;7235:24;7253:5;7235:24;:::i;:::-;7230:3;7223:37;7158:108;;:::o;7272:118::-;7359:24;7377:5;7359:24;:::i;:::-;7354:3;7347:37;7272:118;;:::o;7396:109::-;7477:21;7492:5;7477:21;:::i;:::-;7472:3;7465:34;7396:109;;:::o;7511:360::-;7597:3;7625:38;7657:5;7625:38;:::i;:::-;7679:70;7742:6;7737:3;7679:70;:::i;:::-;7672:77;;7758:52;7803:6;7798:3;7791:4;7784:5;7780:16;7758:52;:::i;:::-;7835:29;7857:6;7835:29;:::i;:::-;7830:3;7826:39;7819:46;;7601:270;7511:360;;;;:::o;7877:364::-;7965:3;7993:39;8026:5;7993:39;:::i;:::-;8048:71;8112:6;8107:3;8048:71;:::i;:::-;8041:78;;8128:52;8173:6;8168:3;8161:4;8154:5;8150:16;8128:52;:::i;:::-;8205:29;8227:6;8205:29;:::i;:::-;8200:3;8196:39;8189:46;;7969:272;7877:364;;;;:::o;8247:377::-;8353:3;8381:39;8414:5;8381:39;:::i;:::-;8436:89;8518:6;8513:3;8436:89;:::i;:::-;8429:96;;8534:52;8579:6;8574:3;8567:4;8560:5;8556:16;8534:52;:::i;:::-;8611:6;8606:3;8602:16;8595:23;;8357:267;8247:377;;;;:::o;8630:366::-;8772:3;8793:67;8857:2;8852:3;8793:67;:::i;:::-;8786:74;;8869:93;8958:3;8869:93;:::i;:::-;8987:2;8982:3;8978:12;8971:19;;8630:366;;;:::o;9002:::-;9144:3;9165:67;9229:2;9224:3;9165:67;:::i;:::-;9158:74;;9241:93;9330:3;9241:93;:::i;:::-;9359:2;9354:3;9350:12;9343:19;;9002:366;;;:::o;9374:::-;9516:3;9537:67;9601:2;9596:3;9537:67;:::i;:::-;9530:74;;9613:93;9702:3;9613:93;:::i;:::-;9731:2;9726:3;9722:12;9715:19;;9374:366;;;:::o;9746:::-;9888:3;9909:67;9973:2;9968:3;9909:67;:::i;:::-;9902:74;;9985:93;10074:3;9985:93;:::i;:::-;10103:2;10098:3;10094:12;10087:19;;9746:366;;;:::o;10118:::-;10260:3;10281:67;10345:2;10340:3;10281:67;:::i;:::-;10274:74;;10357:93;10446:3;10357:93;:::i;:::-;10475:2;10470:3;10466:12;10459:19;;10118:366;;;:::o;10490:::-;10632:3;10653:67;10717:2;10712:3;10653:67;:::i;:::-;10646:74;;10729:93;10818:3;10729:93;:::i;:::-;10847:2;10842:3;10838:12;10831:19;;10490:366;;;:::o;10862:::-;11004:3;11025:67;11089:2;11084:3;11025:67;:::i;:::-;11018:74;;11101:93;11190:3;11101:93;:::i;:::-;11219:2;11214:3;11210:12;11203:19;;10862:366;;;:::o;11234:::-;11376:3;11397:67;11461:2;11456:3;11397:67;:::i;:::-;11390:74;;11473:93;11562:3;11473:93;:::i;:::-;11591:2;11586:3;11582:12;11575:19;;11234:366;;;:::o;11606:::-;11748:3;11769:67;11833:2;11828:3;11769:67;:::i;:::-;11762:74;;11845:93;11934:3;11845:93;:::i;:::-;11963:2;11958:3;11954:12;11947:19;;11606:366;;;:::o;11978:::-;12120:3;12141:67;12205:2;12200:3;12141:67;:::i;:::-;12134:74;;12217:93;12306:3;12217:93;:::i;:::-;12335:2;12330:3;12326:12;12319:19;;11978:366;;;:::o;12350:::-;12492:3;12513:67;12577:2;12572:3;12513:67;:::i;:::-;12506:74;;12589:93;12678:3;12589:93;:::i;:::-;12707:2;12702:3;12698:12;12691:19;;12350:366;;;:::o;12722:::-;12864:3;12885:67;12949:2;12944:3;12885:67;:::i;:::-;12878:74;;12961:93;13050:3;12961:93;:::i;:::-;13079:2;13074:3;13070:12;13063:19;;12722:366;;;:::o;13094:::-;13236:3;13257:67;13321:2;13316:3;13257:67;:::i;:::-;13250:74;;13333:93;13422:3;13333:93;:::i;:::-;13451:2;13446:3;13442:12;13435:19;;13094:366;;;:::o;13466:::-;13608:3;13629:67;13693:2;13688:3;13629:67;:::i;:::-;13622:74;;13705:93;13794:3;13705:93;:::i;:::-;13823:2;13818:3;13814:12;13807:19;;13466:366;;;:::o;13838:::-;13980:3;14001:67;14065:2;14060:3;14001:67;:::i;:::-;13994:74;;14077:93;14166:3;14077:93;:::i;:::-;14195:2;14190:3;14186:12;14179:19;;13838:366;;;:::o;14210:::-;14352:3;14373:67;14437:2;14432:3;14373:67;:::i;:::-;14366:74;;14449:93;14538:3;14449:93;:::i;:::-;14567:2;14562:3;14558:12;14551:19;;14210:366;;;:::o;14582:::-;14724:3;14745:67;14809:2;14804:3;14745:67;:::i;:::-;14738:74;;14821:93;14910:3;14821:93;:::i;:::-;14939:2;14934:3;14930:12;14923:19;;14582:366;;;:::o;14954:::-;15096:3;15117:67;15181:2;15176:3;15117:67;:::i;:::-;15110:74;;15193:93;15282:3;15193:93;:::i;:::-;15311:2;15306:3;15302:12;15295:19;;14954:366;;;:::o;15326:::-;15468:3;15489:67;15553:2;15548:3;15489:67;:::i;:::-;15482:74;;15565:93;15654:3;15565:93;:::i;:::-;15683:2;15678:3;15674:12;15667:19;;15326:366;;;:::o;15698:::-;15840:3;15861:67;15925:2;15920:3;15861:67;:::i;:::-;15854:74;;15937:93;16026:3;15937:93;:::i;:::-;16055:2;16050:3;16046:12;16039:19;;15698:366;;;:::o;16070:::-;16212:3;16233:67;16297:2;16292:3;16233:67;:::i;:::-;16226:74;;16309:93;16398:3;16309:93;:::i;:::-;16427:2;16422:3;16418:12;16411:19;;16070:366;;;:::o;16442:::-;16584:3;16605:67;16669:2;16664:3;16605:67;:::i;:::-;16598:74;;16681:93;16770:3;16681:93;:::i;:::-;16799:2;16794:3;16790:12;16783:19;;16442:366;;;:::o;16814:::-;16956:3;16977:67;17041:2;17036:3;16977:67;:::i;:::-;16970:74;;17053:93;17142:3;17053:93;:::i;:::-;17171:2;17166:3;17162:12;17155:19;;16814:366;;;:::o;17186:::-;17328:3;17349:67;17413:2;17408:3;17349:67;:::i;:::-;17342:74;;17425:93;17514:3;17425:93;:::i;:::-;17543:2;17538:3;17534:12;17527:19;;17186:366;;;:::o;17558:::-;17700:3;17721:67;17785:2;17780:3;17721:67;:::i;:::-;17714:74;;17797:93;17886:3;17797:93;:::i;:::-;17915:2;17910:3;17906:12;17899:19;;17558:366;;;:::o;17930:::-;18072:3;18093:67;18157:2;18152:3;18093:67;:::i;:::-;18086:74;;18169:93;18258:3;18169:93;:::i;:::-;18287:2;18282:3;18278:12;18271:19;;17930:366;;;:::o;18302:::-;18444:3;18465:67;18529:2;18524:3;18465:67;:::i;:::-;18458:74;;18541:93;18630:3;18541:93;:::i;:::-;18659:2;18654:3;18650:12;18643:19;;18302:366;;;:::o;18744:527::-;18903:4;18898:3;18894:14;18990:4;18983:5;18979:16;18973:23;19009:63;19066:4;19061:3;19057:14;19043:12;19009:63;:::i;:::-;18918:164;19174:4;19167:5;19163:16;19157:23;19193:61;19248:4;19243:3;19239:14;19225:12;19193:61;:::i;:::-;19092:172;18872:399;18744:527;;:::o;19277:118::-;19364:24;19382:5;19364:24;:::i;:::-;19359:3;19352:37;19277:118;;:::o;19401:105::-;19476:23;19493:5;19476:23;:::i;:::-;19471:3;19464:36;19401:105;;:::o;19512:435::-;19692:3;19714:95;19805:3;19796:6;19714:95;:::i;:::-;19707:102;;19826:95;19917:3;19908:6;19826:95;:::i;:::-;19819:102;;19938:3;19931:10;;19512:435;;;;;:::o;19953:222::-;20046:4;20084:2;20073:9;20069:18;20061:26;;20097:71;20165:1;20154:9;20150:17;20141:6;20097:71;:::i;:::-;19953:222;;;;:::o;20181:640::-;20376:4;20414:3;20403:9;20399:19;20391:27;;20428:71;20496:1;20485:9;20481:17;20472:6;20428:71;:::i;:::-;20509:72;20577:2;20566:9;20562:18;20553:6;20509:72;:::i;:::-;20591;20659:2;20648:9;20644:18;20635:6;20591:72;:::i;:::-;20710:9;20704:4;20700:20;20695:2;20684:9;20680:18;20673:48;20738:76;20809:4;20800:6;20738:76;:::i;:::-;20730:84;;20181:640;;;;;;;:::o;20827:210::-;20914:4;20952:2;20941:9;20937:18;20929:26;;20965:65;21027:1;21016:9;21012:17;21003:6;20965:65;:::i;:::-;20827:210;;;;:::o;21043:313::-;21156:4;21194:2;21183:9;21179:18;21171:26;;21243:9;21237:4;21233:20;21229:1;21218:9;21214:17;21207:47;21271:78;21344:4;21335:6;21271:78;:::i;:::-;21263:86;;21043:313;;;;:::o;21362:419::-;21528:4;21566:2;21555:9;21551:18;21543:26;;21615:9;21609:4;21605:20;21601:1;21590:9;21586:17;21579:47;21643:131;21769:4;21643:131;:::i;:::-;21635:139;;21362:419;;;:::o;21787:::-;21953:4;21991:2;21980:9;21976:18;21968:26;;22040:9;22034:4;22030:20;22026:1;22015:9;22011:17;22004:47;22068:131;22194:4;22068:131;:::i;:::-;22060:139;;21787:419;;;:::o;22212:::-;22378:4;22416:2;22405:9;22401:18;22393:26;;22465:9;22459:4;22455:20;22451:1;22440:9;22436:17;22429:47;22493:131;22619:4;22493:131;:::i;:::-;22485:139;;22212:419;;;:::o;22637:::-;22803:4;22841:2;22830:9;22826:18;22818:26;;22890:9;22884:4;22880:20;22876:1;22865:9;22861:17;22854:47;22918:131;23044:4;22918:131;:::i;:::-;22910:139;;22637:419;;;:::o;23062:::-;23228:4;23266:2;23255:9;23251:18;23243:26;;23315:9;23309:4;23305:20;23301:1;23290:9;23286:17;23279:47;23343:131;23469:4;23343:131;:::i;:::-;23335:139;;23062:419;;;:::o;23487:::-;23653:4;23691:2;23680:9;23676:18;23668:26;;23740:9;23734:4;23730:20;23726:1;23715:9;23711:17;23704:47;23768:131;23894:4;23768:131;:::i;:::-;23760:139;;23487:419;;;:::o;23912:::-;24078:4;24116:2;24105:9;24101:18;24093:26;;24165:9;24159:4;24155:20;24151:1;24140:9;24136:17;24129:47;24193:131;24319:4;24193:131;:::i;:::-;24185:139;;23912:419;;;:::o;24337:::-;24503:4;24541:2;24530:9;24526:18;24518:26;;24590:9;24584:4;24580:20;24576:1;24565:9;24561:17;24554:47;24618:131;24744:4;24618:131;:::i;:::-;24610:139;;24337:419;;;:::o;24762:::-;24928:4;24966:2;24955:9;24951:18;24943:26;;25015:9;25009:4;25005:20;25001:1;24990:9;24986:17;24979:47;25043:131;25169:4;25043:131;:::i;:::-;25035:139;;24762:419;;;:::o;25187:::-;25353:4;25391:2;25380:9;25376:18;25368:26;;25440:9;25434:4;25430:20;25426:1;25415:9;25411:17;25404:47;25468:131;25594:4;25468:131;:::i;:::-;25460:139;;25187:419;;;:::o;25612:::-;25778:4;25816:2;25805:9;25801:18;25793:26;;25865:9;25859:4;25855:20;25851:1;25840:9;25836:17;25829:47;25893:131;26019:4;25893:131;:::i;:::-;25885:139;;25612:419;;;:::o;26037:::-;26203:4;26241:2;26230:9;26226:18;26218:26;;26290:9;26284:4;26280:20;26276:1;26265:9;26261:17;26254:47;26318:131;26444:4;26318:131;:::i;:::-;26310:139;;26037:419;;;:::o;26462:::-;26628:4;26666:2;26655:9;26651:18;26643:26;;26715:9;26709:4;26705:20;26701:1;26690:9;26686:17;26679:47;26743:131;26869:4;26743:131;:::i;:::-;26735:139;;26462:419;;;:::o;26887:::-;27053:4;27091:2;27080:9;27076:18;27068:26;;27140:9;27134:4;27130:20;27126:1;27115:9;27111:17;27104:47;27168:131;27294:4;27168:131;:::i;:::-;27160:139;;26887:419;;;:::o;27312:::-;27478:4;27516:2;27505:9;27501:18;27493:26;;27565:9;27559:4;27555:20;27551:1;27540:9;27536:17;27529:47;27593:131;27719:4;27593:131;:::i;:::-;27585:139;;27312:419;;;:::o;27737:::-;27903:4;27941:2;27930:9;27926:18;27918:26;;27990:9;27984:4;27980:20;27976:1;27965:9;27961:17;27954:47;28018:131;28144:4;28018:131;:::i;:::-;28010:139;;27737:419;;;:::o;28162:::-;28328:4;28366:2;28355:9;28351:18;28343:26;;28415:9;28409:4;28405:20;28401:1;28390:9;28386:17;28379:47;28443:131;28569:4;28443:131;:::i;:::-;28435:139;;28162:419;;;:::o;28587:::-;28753:4;28791:2;28780:9;28776:18;28768:26;;28840:9;28834:4;28830:20;28826:1;28815:9;28811:17;28804:47;28868:131;28994:4;28868:131;:::i;:::-;28860:139;;28587:419;;;:::o;29012:::-;29178:4;29216:2;29205:9;29201:18;29193:26;;29265:9;29259:4;29255:20;29251:1;29240:9;29236:17;29229:47;29293:131;29419:4;29293:131;:::i;:::-;29285:139;;29012:419;;;:::o;29437:::-;29603:4;29641:2;29630:9;29626:18;29618:26;;29690:9;29684:4;29680:20;29676:1;29665:9;29661:17;29654:47;29718:131;29844:4;29718:131;:::i;:::-;29710:139;;29437:419;;;:::o;29862:::-;30028:4;30066:2;30055:9;30051:18;30043:26;;30115:9;30109:4;30105:20;30101:1;30090:9;30086:17;30079:47;30143:131;30269:4;30143:131;:::i;:::-;30135:139;;29862:419;;;:::o;30287:::-;30453:4;30491:2;30480:9;30476:18;30468:26;;30540:9;30534:4;30530:20;30526:1;30515:9;30511:17;30504:47;30568:131;30694:4;30568:131;:::i;:::-;30560:139;;30287:419;;;:::o;30712:::-;30878:4;30916:2;30905:9;30901:18;30893:26;;30965:9;30959:4;30955:20;30951:1;30940:9;30936:17;30929:47;30993:131;31119:4;30993:131;:::i;:::-;30985:139;;30712:419;;;:::o;31137:::-;31303:4;31341:2;31330:9;31326:18;31318:26;;31390:9;31384:4;31380:20;31376:1;31365:9;31361:17;31354:47;31418:131;31544:4;31418:131;:::i;:::-;31410:139;;31137:419;;;:::o;31562:::-;31728:4;31766:2;31755:9;31751:18;31743:26;;31815:9;31809:4;31805:20;31801:1;31790:9;31786:17;31779:47;31843:131;31969:4;31843:131;:::i;:::-;31835:139;;31562:419;;;:::o;31987:::-;32153:4;32191:2;32180:9;32176:18;32168:26;;32240:9;32234:4;32230:20;32226:1;32215:9;32211:17;32204:47;32268:131;32394:4;32268:131;:::i;:::-;32260:139;;31987:419;;;:::o;32412:::-;32578:4;32616:2;32605:9;32601:18;32593:26;;32665:9;32659:4;32655:20;32651:1;32640:9;32636:17;32629:47;32693:131;32819:4;32693:131;:::i;:::-;32685:139;;32412:419;;;:::o;32837:346::-;32992:4;33030:2;33019:9;33015:18;33007:26;;33043:133;33173:1;33162:9;33158:17;33149:6;33043:133;:::i;:::-;32837:346;;;;:::o;33189:222::-;33282:4;33320:2;33309:9;33305:18;33297:26;;33333:71;33401:1;33390:9;33386:17;33377:6;33333:71;:::i;:::-;33189:222;;;;:::o;33417:129::-;33451:6;33478:20;;:::i;:::-;33468:30;;33507:33;33535:4;33527:6;33507:33;:::i;:::-;33417:129;;;:::o;33552:75::-;33585:6;33618:2;33612:9;33602:19;;33552:75;:::o;33633:307::-;33694:4;33784:18;33776:6;33773:30;33770:56;;;33806:18;;:::i;:::-;33770:56;33844:29;33866:6;33844:29;:::i;:::-;33836:37;;33928:4;33922;33918:15;33910:23;;33633:307;;;:::o;33946:308::-;34008:4;34098:18;34090:6;34087:30;34084:56;;;34120:18;;:::i;:::-;34084:56;34158:29;34180:6;34158:29;:::i;:::-;34150:37;;34242:4;34236;34232:15;34224:23;;33946:308;;;:::o;34260:98::-;34311:6;34345:5;34339:12;34329:22;;34260:98;;;:::o;34364:99::-;34416:6;34450:5;34444:12;34434:22;;34364:99;;;:::o;34469:168::-;34552:11;34586:6;34581:3;34574:19;34626:4;34621:3;34617:14;34602:29;;34469:168;;;;:::o;34643:169::-;34727:11;34761:6;34756:3;34749:19;34801:4;34796:3;34792:14;34777:29;;34643:169;;;;:::o;34818:148::-;34920:11;34957:3;34942:18;;34818:148;;;;:::o;34972:273::-;35012:3;35031:20;35049:1;35031:20;:::i;:::-;35026:25;;35065:20;35083:1;35065:20;:::i;:::-;35060:25;;35187:1;35151:34;35147:42;35144:1;35141:49;35138:75;;;35193:18;;:::i;:::-;35138:75;35237:1;35234;35230:9;35223:16;;34972:273;;;;:::o;35251:305::-;35291:3;35310:20;35328:1;35310:20;:::i;:::-;35305:25;;35344:20;35362:1;35344:20;:::i;:::-;35339:25;;35498:1;35430:66;35426:74;35423:1;35420:81;35417:107;;;35504:18;;:::i;:::-;35417:107;35548:1;35545;35541:9;35534:16;;35251:305;;;;:::o;35562:185::-;35602:1;35619:20;35637:1;35619:20;:::i;:::-;35614:25;;35653:20;35671:1;35653:20;:::i;:::-;35648:25;;35692:1;35682:35;;35697:18;;:::i;:::-;35682:35;35739:1;35736;35732:9;35727:14;;35562:185;;;;:::o;35753:348::-;35793:7;35816:20;35834:1;35816:20;:::i;:::-;35811:25;;35850:20;35868:1;35850:20;:::i;:::-;35845:25;;36038:1;35970:66;35966:74;35963:1;35960:81;35955:1;35948:9;35941:17;35937:105;35934:131;;;36045:18;;:::i;:::-;35934:131;36093:1;36090;36086:9;36075:20;;35753:348;;;;:::o;36107:191::-;36147:4;36167:20;36185:1;36167:20;:::i;:::-;36162:25;;36201:20;36219:1;36201:20;:::i;:::-;36196:25;;36240:1;36237;36234:8;36231:34;;;36245:18;;:::i;:::-;36231:34;36290:1;36287;36283:9;36275:17;;36107:191;;;;:::o;36304:::-;36344:4;36364:20;36382:1;36364:20;:::i;:::-;36359:25;;36398:20;36416:1;36398:20;:::i;:::-;36393:25;;36437:1;36434;36431:8;36428:34;;;36442:18;;:::i;:::-;36428:34;36487:1;36484;36480:9;36472:17;;36304:191;;;;:::o;36501:96::-;36538:7;36567:24;36585:5;36567:24;:::i;:::-;36556:35;;36501:96;;;:::o;36603:90::-;36637:7;36680:5;36673:13;36666:21;36655:32;;36603:90;;;:::o;36699:149::-;36735:7;36775:66;36768:5;36764:78;36753:89;;36699:149;;;:::o;36854:118::-;36891:7;36931:34;36924:5;36920:46;36909:57;;36854:118;;;:::o;36978:126::-;37015:7;37055:42;37048:5;37044:54;37033:65;;36978:126;;;:::o;37110:77::-;37147:7;37176:5;37165:16;;37110:77;;;:::o;37193:101::-;37229:7;37269:18;37262:5;37258:30;37247:41;;37193:101;;;:::o;37300:154::-;37384:6;37379:3;37374;37361:30;37446:1;37437:6;37432:3;37428:16;37421:27;37300:154;;;:::o;37460:307::-;37528:1;37538:113;37552:6;37549:1;37546:13;37538:113;;;37637:1;37632:3;37628:11;37622:18;37618:1;37613:3;37609:11;37602:39;37574:2;37571:1;37567:10;37562:15;;37538:113;;;37669:6;37666:1;37663:13;37660:101;;;37749:1;37740:6;37735:3;37731:16;37724:27;37660:101;37509:258;37460:307;;;:::o;37773:171::-;37812:3;37835:24;37853:5;37835:24;:::i;:::-;37826:33;;37881:4;37874:5;37871:15;37868:41;;;37889:18;;:::i;:::-;37868:41;37936:1;37929:5;37925:13;37918:20;;37773:171;;;:::o;37950:320::-;37994:6;38031:1;38025:4;38021:12;38011:22;;38078:1;38072:4;38068:12;38099:18;38089:81;;38155:4;38147:6;38143:17;38133:27;;38089:81;38217:2;38209:6;38206:14;38186:18;38183:38;38180:84;;;38236:18;;:::i;:::-;38180:84;38001:269;37950:320;;;:::o;38276:281::-;38359:27;38381:4;38359:27;:::i;:::-;38351:6;38347:40;38489:6;38477:10;38474:22;38453:18;38441:10;38438:34;38435:62;38432:88;;;38500:18;;:::i;:::-;38432:88;38540:10;38536:2;38529:22;38319:238;38276:281;;:::o;38563:233::-;38602:3;38625:24;38643:5;38625:24;:::i;:::-;38616:33;;38671:66;38664:5;38661:77;38658:103;;;38741:18;;:::i;:::-;38658:103;38788:1;38781:5;38777:13;38770:20;;38563:233;;;:::o;38802:176::-;38834:1;38851:20;38869:1;38851:20;:::i;:::-;38846:25;;38885:20;38903:1;38885:20;:::i;:::-;38880:25;;38924:1;38914:35;;38929:18;;:::i;:::-;38914:35;38970:1;38967;38963:9;38958:14;;38802:176;;;;:::o;38984:180::-;39032:77;39029:1;39022:88;39129:4;39126:1;39119:15;39153:4;39150:1;39143:15;39170:180;39218:77;39215:1;39208:88;39315:4;39312:1;39305:15;39339:4;39336:1;39329:15;39356:180;39404:77;39401:1;39394:88;39501:4;39498:1;39491:15;39525:4;39522:1;39515:15;39542:180;39590:77;39587:1;39580:88;39687:4;39684:1;39677:15;39711:4;39708:1;39701:15;39728:180;39776:77;39773:1;39766:88;39873:4;39870:1;39863:15;39897:4;39894:1;39887:15;39914:117;40023:1;40020;40013:12;40037:117;40146:1;40143;40136:12;40160:117;40269:1;40266;40259:12;40283:117;40392:1;40389;40382:12;40406:102;40447:6;40498:2;40494:7;40489:2;40482:5;40478:14;40474:28;40464:38;;40406:102;;;:::o;40514:221::-;40654:34;40650:1;40642:6;40638:14;40631:58;40723:4;40718:2;40710:6;40706:15;40699:29;40514:221;:::o;40741:225::-;40881:34;40877:1;40869:6;40865:14;40858:58;40950:8;40945:2;40937:6;40933:15;40926:33;40741:225;:::o;40972:229::-;41112:34;41108:1;41100:6;41096:14;41089:58;41181:12;41176:2;41168:6;41164:15;41157:37;40972:229;:::o;41207:222::-;41347:34;41343:1;41335:6;41331:14;41324:58;41416:5;41411:2;41403:6;41399:15;41392:30;41207:222;:::o;41435:224::-;41575:34;41571:1;41563:6;41559:14;41552:58;41644:7;41639:2;41631:6;41627:15;41620:32;41435:224;:::o;41665:236::-;41805:34;41801:1;41793:6;41789:14;41782:58;41874:19;41869:2;41861:6;41857:15;41850:44;41665:236;:::o;41907:168::-;42047:20;42043:1;42035:6;42031:14;42024:44;41907:168;:::o;42081:180::-;42221:32;42217:1;42209:6;42205:14;42198:56;42081:180;:::o;42267:244::-;42407:34;42403:1;42395:6;42391:14;42384:58;42476:27;42471:2;42463:6;42459:15;42452:52;42267:244;:::o;42517:230::-;42657:34;42653:1;42645:6;42641:14;42634:58;42726:13;42721:2;42713:6;42709:15;42702:38;42517:230;:::o;42753:168::-;42893:20;42889:1;42881:6;42877:14;42870:44;42753:168;:::o;42927:225::-;43067:34;43063:1;43055:6;43051:14;43044:58;43136:8;43131:2;43123:6;43119:15;43112:33;42927:225;:::o;43158:182::-;43298:34;43294:1;43286:6;43282:14;43275:58;43158:182;:::o;43346:234::-;43486:34;43482:1;43474:6;43470:14;43463:58;43555:17;43550:2;43542:6;43538:15;43531:42;43346:234;:::o;43586:176::-;43726:28;43722:1;43714:6;43710:14;43703:52;43586:176;:::o;43768:237::-;43908:34;43904:1;43896:6;43892:14;43885:58;43977:20;43972:2;43964:6;43960:15;43953:45;43768:237;:::o;44011:221::-;44151:34;44147:1;44139:6;44135:14;44128:58;44220:4;44215:2;44207:6;44203:15;44196:29;44011:221;:::o;44238:238::-;44378:34;44374:1;44366:6;44362:14;44355:58;44447:21;44442:2;44434:6;44430:15;44423:46;44238:238;:::o;44482:172::-;44622:24;44618:1;44610:6;44606:14;44599:48;44482:172;:::o;44660:179::-;44800:31;44796:1;44788:6;44784:14;44777:55;44660:179;:::o;44845:220::-;44985:34;44981:1;44973:6;44969:14;44962:58;45054:3;45049:2;45041:6;45037:15;45030:28;44845:220;:::o;45071:172::-;45211:24;45207:1;45199:6;45195:14;45188:48;45071:172;:::o;45249:233::-;45389:34;45385:1;45377:6;45373:14;45366:58;45458:16;45453:2;45445:6;45441:15;45434:41;45249:233;:::o;45488:181::-;45628:33;45624:1;45616:6;45612:14;45605:57;45488:181;:::o;45675:234::-;45815:34;45811:1;45803:6;45799:14;45792:58;45884:17;45879:2;45871:6;45867:15;45860:42;45675:234;:::o;45915:232::-;46055:34;46051:1;46043:6;46039:14;46032:58;46124:15;46119:2;46111:6;46107:15;46100:40;45915:232;:::o;46153:221::-;46293:34;46289:1;46281:6;46277:14;46270:58;46362:4;46357:2;46349:6;46345:15;46338:29;46153:221;:::o;46380:122::-;46453:24;46471:5;46453:24;:::i;:::-;46446:5;46443:35;46433:63;;46492:1;46489;46482:12;46433:63;46380:122;:::o;46508:116::-;46578:21;46593:5;46578:21;:::i;:::-;46571:5;46568:32;46558:60;;46614:1;46611;46604:12;46558:60;46508:116;:::o;46630:120::-;46702:23;46719:5;46702:23;:::i;:::-;46695:5;46692:34;46682:62;;46740:1;46737;46730:12;46682:62;46630:120;:::o;46756:122::-;46829:24;46847:5;46829:24;:::i;:::-;46822:5;46819:35;46809:63;;46868:1;46865;46858:12;46809:63;46756:122;:::o

Swarm Source

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