abstract contract PausableNFT is NFT, Pausable {
  /**
   * @dev Based on {ERC1155-_beforeTokenTransfer}.
   *
   * Requirements:
   *
   * - the contract must not be paused.
   */
  function _beforeTokenTransfer() internal virtual override {
    require(!paused(), 'PausableNFT: token transfer while paused');
  }
}
/**
 * @dev NFT with pausable token transfers and minting
 
 */
function _beforeTokenTransfer() internal virtual override {
  require(!paused(), 'PausableNFT: token transfer while paused');
}

/**
 * @dev Based on {ERC1155-_beforeTokenTransfer}.
 *
 * Requirements:
 *
 * - the contract must not be paused.
 */