// Copyright 2015 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com

#ifndef CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
#define CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_

#include "core/fpdfapi/cmaps/fpdf_cmaps.h"

extern const uint16_t g_FXCMAP_GB_EUC_H_0[];
extern const uint16_t g_FXCMAP_GB_EUC_V_0[];
extern const uint16_t g_FXCMAP_GBpc_EUC_H_0[];
extern const uint16_t g_FXCMAP_GBpc_EUC_V_0[];
extern const uint16_t g_FXCMAP_GBK_EUC_H_2[];
extern const uint16_t g_FXCMAP_GBK_EUC_V_2[];
extern const uint16_t g_FXCMAP_GBKp_EUC_H_2[];
extern const uint16_t g_FXCMAP_GBKp_EUC_V_2[];
extern const uint16_t g_FXCMAP_GBK2K_H_5[];
extern const FXCMAP_DWordCIDMap g_FXCMAP_GBK2K_H_5_DWord[];
extern const uint16_t g_FXCMAP_GBK2K_V_5[];
extern const uint16_t g_FXCMAP_UniGB_UCS2_H_4[];
extern const uint16_t g_FXCMAP_UniGB_UCS2_V_4[];
extern const uint16_t g_FXCMAP_GB1CID2Unicode_5[30284];
extern const FXCMAP_CMap g_FXCMAP_GB1_cmaps[];
extern const size_t g_FXCMAP_GB1_cmaps_size;

#endif  // CORE_FPDFAPI_CMAPS_GB1_CMAPS_GB1_H_
