// 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_JAPAN1_CMAPS_JAPAN1_H_
#define CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_

#include <stddef.h>

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

extern const uint16_t kFXCMAP_83pv_RKSJ_H_1[];
extern const uint16_t kFXCMAP_90ms_RKSJ_H_2[];
extern const uint16_t kFXCMAP_90ms_RKSJ_V_2[];
extern const uint16_t kFXCMAP_90msp_RKSJ_H_2[];
extern const uint16_t kFXCMAP_90msp_RKSJ_V_2[];
extern const uint16_t kFXCMAP_90pv_RKSJ_H_1[];
extern const uint16_t kFXCMAP_Add_RKSJ_H_1[];
extern const uint16_t kFXCMAP_Add_RKSJ_V_1[];
extern const uint16_t kFXCMAP_EUC_H_1[];
extern const uint16_t kFXCMAP_EUC_V_1[];
extern const uint16_t kFXCMAP_Ext_RKSJ_H_2[];
extern const uint16_t kFXCMAP_Ext_RKSJ_V_2[];
extern const uint16_t kFXCMAP_H_1[];
extern const uint16_t kFXCMAP_V_1[];
extern const uint16_t kFXCMAP_UniJIS_UCS2_H_4[];
extern const uint16_t kFXCMAP_UniJIS_UCS2_V_4[];
extern const uint16_t kFXCMAP_UniJIS_UCS2_HW_H_4[];
extern const uint16_t kFXCMAP_UniJIS_UCS2_HW_V_4[];
extern const uint16_t kFXCMAP_UniJIS_UTF16_H_0[];
extern const uint16_t kFXCMAP_UniJIS_UTF16_H_0_DWord[];
extern const uint16_t kFXCMAP_UniJIS_UTF16_V_0[];
extern const uint16_t kFXCMAP_Japan1CID2Unicode_4[15444];
extern const FXCMAP_CMap kFXCMAP_Japan1_cmaps[];
extern const size_t kFXCMAP_Japan1_cmaps_size;

#endif  // CORE_FPDFAPI_CMAPS_JAPAN1_CMAPS_JAPAN1_H_
