/* -*- c-basic-offset: 2 -*- */
/*
  Copyright (C) 2010-2018  Brazil
  Copyright (C) 2019-2024  Sutou Kouhei <kou@clear-code.com>

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 of the License, or (at your option) any later version.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
*/

/*
  Don't edit this file by hand. it generated automatically by nfkc.rb.
*/

#include "grn.h"
#include "grn_nfkc.h"
#include <groonga/nfkc.h>

#ifdef GRN_WITH_NFKC

static grn_char_type grn_nfkc170_char_type_table_[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_c2[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_c3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_cb[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_cd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_ce[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_cf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_d2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_d4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_d5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_d6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_d7[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_d8[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_d9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_db[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_dc[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_de[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_df[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0a0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0a1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0a2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0a4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0a5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0a6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0a7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0a9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0aa[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0ab[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0ac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0ad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e0ae[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0af[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0b0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0b1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0b2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0b3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0b4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0b5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0b6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0b7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0b8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0b9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0ba[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0bb[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0bc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0bd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e0be[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e0bf[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e180[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e181[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e182[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e183[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e189[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e18a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e18b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e18c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e18d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e18e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e18f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e190[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e199[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e19a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e19b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e19c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e19d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e19f[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e1a0[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1a2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1a5[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1a6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1a7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1aa[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1ad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1ae[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1af[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1b0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1b1[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1b2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1b3[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1bc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1bd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e1be[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e1bf[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e280[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e281[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e282[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e284[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e285[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e286[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e28c[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e28f[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e291[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e292[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e293[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e296[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e297[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e298[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e299[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_e29a[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e29b[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e29c[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e29d[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_e29e[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_e2a4[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e2ac[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e2ad[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e2b3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e2b4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e2b5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e2b6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e2b7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_e2b8[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e2bf[] = {
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e380[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_e382[] = {
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA
};

static grn_char_type grn_nfkc170_char_type_table_e387[] = {
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA,
  GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA, GRN_CHAR_KATAKANA
};

static grn_char_type grn_nfkc170_char_type_table_e38a[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_ea93[] = {
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_ea98[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_ea99[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_ea9a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_ea9b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_ea9c[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_ea9e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_ea9f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaa0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_eaa1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_eaa3[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaa4[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaa5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI
};

static grn_char_type grn_nfkc170_char_type_table_eaa7[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaa9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaaa[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaab[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_eaaf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_efac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efae[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_efaf[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efb4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_efb5[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efb6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efb7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_efb8[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_efb9[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efbc[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_efbd[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_efbf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09080[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09081[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09084[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09085[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09086[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f0908a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0908b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f0908c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0908d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0908e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0908f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09092[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09093[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09094[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09095[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09096[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0909d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0909e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090a0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090a1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090a2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090a3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090a4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f090a6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090a7[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090a9[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f090aa[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090ab[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f090ac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f090ad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090ae[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090b3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090b4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f090b5[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090b6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f090ba[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090bb[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f090bc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090bd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090be[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f090bf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09181[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09182[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09183[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09184[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09185[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09187[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09188[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0918a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0918b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f0918c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0918d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0918e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0918f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09191[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09193[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09197[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09199[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f0919a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f0919b[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f0919c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f091a0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f091a3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091a4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091a5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f091a6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091a7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091a8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f091a9[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091aa[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091af[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f091b0[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091b1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091b4[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091b5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091b6[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091b7[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f091bb[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f091bc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f091bd[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f091bf[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09291[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f092bf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09391[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09684[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f096a9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f096ab[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f096ac[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f096ad[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f096b5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f096ba[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f096bd[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f096bf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f098b3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09abf[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09b80[] = {
  GRN_CHAR_KATAKANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA
};

static grn_char_type grn_nfkc170_char_type_table_f09b84[] = {
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA, GRN_CHAR_HIRAGANA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09b85[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09bb1[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09bb2[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09cb3[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09cba[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09cbb[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09d84[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09d85[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09d86[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09d89[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09d8b[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09d8d[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09d91[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d92[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d93[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d94[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d95[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d9a[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d9b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d9c[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d9d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d9e[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09d9f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09da9[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09daa[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09dbc[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09e84[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09e85[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09e8b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09e93[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09e97[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09e9b[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09e9f[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09ea3[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09ea5[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09eb2[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09eb4[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT
};

static grn_char_type grn_nfkc170_char_type_table_f09eb8[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09eb9[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09eba[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f09f80[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f82[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f83[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f84[] = {
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f85[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09f86[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f88[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f89[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f99[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09f9f[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09fa0[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09fa1[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09fa2[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09fa3[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09fa4[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09fa5[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_SYMBOL, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09fa9[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09faa[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09fab[] = {
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS,
  GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI, GRN_CHAR_EMOJI,
  GRN_CHAR_EMOJI
};

static grn_char_type grn_nfkc170_char_type_table_f09fae[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_OTHERS, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f09faf[] = {
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL, GRN_CHAR_SYMBOL,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_DIGIT,
  GRN_CHAR_DIGIT, GRN_CHAR_DIGIT, GRN_CHAR_SYMBOL
};

static grn_char_type grn_nfkc170_char_type_table_f0aeaf[] = {
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI, GRN_CHAR_KANJI,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

static grn_char_type grn_nfkc170_char_type_table_f0b18d[] = {
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS, GRN_CHAR_OTHERS,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA,
  GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA, GRN_CHAR_ALPHA
};

grn_char_type
grn_nfkc170_char_type(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x21 &&
        utf8[0] <= 0x7e) {
      return grn_nfkc170_char_type_table_[utf8[0] - 0x21];
    } else {
      return GRN_CHAR_OTHERS;
    }
  } else {
    switch (utf8[0]) {
    case 0xc2 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_char_type_table_c2[utf8[1] - 0xa1];
      }
      break;
    case 0xc3 :
      return grn_nfkc170_char_type_table_c3[utf8[1] - 0x80];
    case 0xc4 :
      return GRN_CHAR_ALPHA;
    case 0xc5 :
      return GRN_CHAR_ALPHA;
    case 0xc6 :
      return GRN_CHAR_ALPHA;
    case 0xc7 :
      return GRN_CHAR_ALPHA;
    case 0xc8 :
      return GRN_CHAR_ALPHA;
    case 0xc9 :
      return GRN_CHAR_ALPHA;
    case 0xca :
      return GRN_CHAR_ALPHA;
    case 0xcb :
      return grn_nfkc170_char_type_table_cb[utf8[1] - 0x80];
    case 0xcd :
      if (utf8[1] >= 0xb0 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_char_type_table_cd[utf8[1] - 0xb0];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0x84 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_char_type_table_ce[utf8[1] - 0x84];
      }
      break;
    case 0xcf :
      return grn_nfkc170_char_type_table_cf[utf8[1] - 0x80];
    case 0xd0 :
      return GRN_CHAR_ALPHA;
    case 0xd1 :
      return GRN_CHAR_ALPHA;
    case 0xd2 :
      return grn_nfkc170_char_type_table_d2[utf8[1] - 0x80];
    case 0xd3 :
      return GRN_CHAR_ALPHA;
    case 0xd4 :
      return grn_nfkc170_char_type_table_d4[utf8[1] - 0x80];
    case 0xd5 :
      return grn_nfkc170_char_type_table_d5[utf8[1] - 0x80];
    case 0xd6 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_char_type_table_d6[utf8[1] - 0x80];
      }
      break;
    case 0xd7 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xb4) {
        return grn_nfkc170_char_type_table_d7[utf8[1] - 0x80];
      }
      break;
    case 0xd8 :
      if (utf8[1] >= 0x86 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_char_type_table_d8[utf8[1] - 0x86];
      }
      break;
    case 0xd9 :
      return grn_nfkc170_char_type_table_d9[utf8[1] - 0x80];
    case 0xda :
      return GRN_CHAR_ALPHA;
    case 0xdb :
      return grn_nfkc170_char_type_table_db[utf8[1] - 0x80];
    case 0xdc :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xaf) {
        return grn_nfkc170_char_type_table_dc[utf8[1] - 0x80];
      }
      break;
    case 0xdd :
      if (utf8[1] >= 0x8d &&
          utf8[1] <= 0xbf) {
        return GRN_CHAR_ALPHA;
      }
      break;
    case 0xde :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xb1) {
        return grn_nfkc170_char_type_table_de[utf8[1] - 0x80];
      }
      break;
    case 0xdf :
      return grn_nfkc170_char_type_table_df[utf8[1] - 0x80];
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_e0a0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        return grn_nfkc170_char_type_table_e0a1[utf8[2] - 0x80];
      case 0xa2 :
        return grn_nfkc170_char_type_table_e0a2[utf8[2] - 0x80];
      case 0xa3 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x89) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0a4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e0a5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0a6[utf8[2] - 0x80];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x8e &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0a7[utf8[2] - 0x8e];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_char_type_table_e0a8[utf8[2] - 0x85];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x99 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc170_char_type_table_e0a9[utf8[2] - 0x99];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0aa[utf8[2] - 0x85];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_char_type_table_e0ab[utf8[2] - 0x90];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0ac[utf8[2] - 0x85];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0xb7) {
          return grn_nfkc170_char_type_table_e0ad[utf8[2] - 0x9c];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_char_type_table_e0ae[utf8[2] - 0x83];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xba) {
          return grn_nfkc170_char_type_table_e0af[utf8[2] - 0x90];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0b0[utf8[2] - 0x85];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e0b1[utf8[2] - 0x98];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0b2[utf8[2] - 0x80];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0xb2) {
          return grn_nfkc170_char_type_table_e0b3[utf8[2] - 0x9c];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0b4[utf8[2] - 0x84];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x8e &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e0b5[utf8[2] - 0x8e];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0b6[utf8[2] - 0x85];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_char_type_table_e0b7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e0b8[utf8[2] - 0x81];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9b) {
          return grn_nfkc170_char_type_table_e0b9[utf8[2] - 0x80];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0ba[utf8[2] - 0x81];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9f) {
          return grn_nfkc170_char_type_table_e0bb[utf8[2] - 0x80];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e0bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_char_type_table_e0bd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e0be[utf8[2] - 0x85];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9a) {
          return grn_nfkc170_char_type_table_e0bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0x80 :
        return grn_nfkc170_char_type_table_e180[utf8[2] - 0x80];
      case 0x81 :
        return grn_nfkc170_char_type_table_e181[utf8[2] - 0x80];
      case 0x82 :
        return grn_nfkc170_char_type_table_e182[utf8[2] - 0x80];
      case 0x83 :
        return grn_nfkc170_char_type_table_e183[utf8[2] - 0x80];
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_ALPHA;
      case 0x89 :
        return grn_nfkc170_char_type_table_e189[utf8[2] - 0x80];
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_e18a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        return grn_nfkc170_char_type_table_e18b[utf8[2] - 0x80];
      case 0x8c :
        return grn_nfkc170_char_type_table_e18c[utf8[2] - 0x80];
      case 0x8d :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_char_type_table_e18d[utf8[2] - 0x80];
        }
        break;
      case 0x8e :
        return grn_nfkc170_char_type_table_e18e[utf8[2] - 0x80];
      case 0x8f :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e18f[utf8[2] - 0x80];
        }
        break;
      case 0x90 :
        return grn_nfkc170_char_type_table_e190[utf8[2] - 0x80];
      case 0x91 :
        return GRN_CHAR_ALPHA;
      case 0x92 :
        return GRN_CHAR_ALPHA;
      case 0x93 :
        return GRN_CHAR_ALPHA;
      case 0x94 :
        return GRN_CHAR_ALPHA;
      case 0x95 :
        return GRN_CHAR_ALPHA;
      case 0x96 :
        return GRN_CHAR_ALPHA;
      case 0x97 :
        return GRN_CHAR_ALPHA;
      case 0x98 :
        return GRN_CHAR_ALPHA;
      case 0x99 :
        return grn_nfkc170_char_type_table_e199[utf8[2] - 0x80];
      case 0x9a :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e19a[utf8[2] - 0x81];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_char_type_table_e19b[utf8[2] - 0x80];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc170_char_type_table_e19c[utf8[2] - 0x80];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_char_type_table_e19d[utf8[2] - 0x80];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb3) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_char_type_table_e19f[utf8[2] - 0x94];
        }
        break;
      case 0xa0 :
        return grn_nfkc170_char_type_table_e1a0[utf8[2] - 0x80];
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa2 :
        return grn_nfkc170_char_type_table_e1a2[utf8[2] - 0x80];
      case 0xa3 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb5) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9e) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_char_type_table_e1a5[utf8[2] - 0x80];
        }
        break;
      case 0xa6 :
        return grn_nfkc170_char_type_table_e1a6[utf8[2] - 0x80];
      case 0xa7 :
        return grn_nfkc170_char_type_table_e1a7[utf8[2] - 0x80];
      case 0xa8 :
        return grn_nfkc170_char_type_table_e1a8[utf8[2] - 0x80];
      case 0xa9 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x94) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xad) {
          return grn_nfkc170_char_type_table_e1aa[utf8[2] - 0x80];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xb3) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e1ad[utf8[2] - 0x85];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e1ae[utf8[2] - 0x83];
        }
        break;
      case 0xaf :
        return grn_nfkc170_char_type_table_e1af[utf8[2] - 0x80];
      case 0xb0 :
        return grn_nfkc170_char_type_table_e1b0[utf8[2] - 0x80];
      case 0xb1 :
        return grn_nfkc170_char_type_table_e1b1[utf8[2] - 0x80];
      case 0xb2 :
        return grn_nfkc170_char_type_table_e1b2[utf8[2] - 0x80];
      case 0xb3 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xba) {
          return grn_nfkc170_char_type_table_e1b3[utf8[2] - 0x80];
        }
        break;
      case 0xb4 :
        return GRN_CHAR_ALPHA;
      case 0xb5 :
        return GRN_CHAR_ALPHA;
      case 0xb6 :
        return GRN_CHAR_ALPHA;
      case 0xb8 :
        return GRN_CHAR_ALPHA;
      case 0xb9 :
        return GRN_CHAR_ALPHA;
      case 0xba :
        return GRN_CHAR_ALPHA;
      case 0xbb :
        return GRN_CHAR_ALPHA;
      case 0xbc :
        return grn_nfkc170_char_type_table_e1bc[utf8[2] - 0x80];
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_e1bd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        return grn_nfkc170_char_type_table_e1be[utf8[2] - 0x80];
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_e1bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe2 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_e280[utf8[2] - 0x90];
        }
        break;
      case 0x81 :
        return grn_nfkc170_char_type_table_e281[utf8[2] - 0x80];
      case 0x82 :
        return grn_nfkc170_char_type_table_e282[utf8[2] - 0x80];
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x81) {
          return GRN_CHAR_SYMBOL;
        }
        break;
      case 0x84 :
        return grn_nfkc170_char_type_table_e284[utf8[2] - 0x80];
      case 0x85 :
        return grn_nfkc170_char_type_table_e285[utf8[2] - 0x80];
      case 0x86 :
        return grn_nfkc170_char_type_table_e286[utf8[2] - 0x80];
      case 0x87 :
        return GRN_CHAR_SYMBOL;
      case 0x88 :
        return GRN_CHAR_SYMBOL;
      case 0x89 :
        return GRN_CHAR_SYMBOL;
      case 0x8a :
        return GRN_CHAR_SYMBOL;
      case 0x8b :
        return GRN_CHAR_SYMBOL;
      case 0x8c :
        return grn_nfkc170_char_type_table_e28c[utf8[2] - 0x80];
      case 0x8d :
        return GRN_CHAR_SYMBOL;
      case 0x8e :
        return GRN_CHAR_SYMBOL;
      case 0x8f :
        return grn_nfkc170_char_type_table_e28f[utf8[2] - 0x80];
      case 0x90 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa9) {
          return GRN_CHAR_SYMBOL;
        }
        break;
      case 0x91 :
        return grn_nfkc170_char_type_table_e291[utf8[2] - 0x80];
      case 0x92 :
        return grn_nfkc170_char_type_table_e292[utf8[2] - 0x80];
      case 0x93 :
        return grn_nfkc170_char_type_table_e293[utf8[2] - 0x80];
      case 0x94 :
        return GRN_CHAR_SYMBOL;
      case 0x95 :
        return GRN_CHAR_SYMBOL;
      case 0x96 :
        return grn_nfkc170_char_type_table_e296[utf8[2] - 0x80];
      case 0x97 :
        return grn_nfkc170_char_type_table_e297[utf8[2] - 0x80];
      case 0x98 :
        return grn_nfkc170_char_type_table_e298[utf8[2] - 0x80];
      case 0x99 :
        return grn_nfkc170_char_type_table_e299[utf8[2] - 0x80];
      case 0x9a :
        return grn_nfkc170_char_type_table_e29a[utf8[2] - 0x80];
      case 0x9b :
        return grn_nfkc170_char_type_table_e29b[utf8[2] - 0x80];
      case 0x9c :
        return grn_nfkc170_char_type_table_e29c[utf8[2] - 0x80];
      case 0x9d :
        return grn_nfkc170_char_type_table_e29d[utf8[2] - 0x80];
      case 0x9e :
        return grn_nfkc170_char_type_table_e29e[utf8[2] - 0x80];
      case 0x9f :
        return GRN_CHAR_SYMBOL;
      case 0xa0 :
        return GRN_CHAR_SYMBOL;
      case 0xa1 :
        return GRN_CHAR_SYMBOL;
      case 0xa2 :
        return GRN_CHAR_SYMBOL;
      case 0xa3 :
        return GRN_CHAR_SYMBOL;
      case 0xa4 :
        return grn_nfkc170_char_type_table_e2a4[utf8[2] - 0x80];
      case 0xa5 :
        return GRN_CHAR_SYMBOL;
      case 0xa6 :
        return GRN_CHAR_SYMBOL;
      case 0xa7 :
        return GRN_CHAR_SYMBOL;
      case 0xa8 :
        return GRN_CHAR_SYMBOL;
      case 0xa9 :
        return GRN_CHAR_SYMBOL;
      case 0xaa :
        return GRN_CHAR_SYMBOL;
      case 0xab :
        return GRN_CHAR_SYMBOL;
      case 0xac :
        return grn_nfkc170_char_type_table_e2ac[utf8[2] - 0x80];
      case 0xad :
        return grn_nfkc170_char_type_table_e2ad[utf8[2] - 0x80];
      case 0xae :
        return GRN_CHAR_SYMBOL;
      case 0xaf :
        return GRN_CHAR_SYMBOL;
      case 0xb0 :
        return GRN_CHAR_ALPHA;
      case 0xb1 :
        return GRN_CHAR_ALPHA;
      case 0xb2 :
        return GRN_CHAR_ALPHA;
      case 0xb3 :
        return grn_nfkc170_char_type_table_e2b3[utf8[2] - 0x80];
      case 0xb4 :
        return grn_nfkc170_char_type_table_e2b4[utf8[2] - 0x80];
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_char_type_table_e2b5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_e2b6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9e) {
          return grn_nfkc170_char_type_table_e2b7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        return grn_nfkc170_char_type_table_e2b8[utf8[2] - 0x80];
      case 0xb9 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9d) {
          return GRN_CHAR_SYMBOL;
        }
        break;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return grn_nfkc170_char_type_table_e2bf[utf8[2] - 0x80];
      default :
        break;
      }
      break;
    case 0xe3 :
      switch (utf8[1]) {
      case 0x80 :
        return grn_nfkc170_char_type_table_e380[utf8[2] - 0x80];
      case 0x81 :
        return GRN_CHAR_HIRAGANA;
      case 0x82 :
        return grn_nfkc170_char_type_table_e382[utf8[2] - 0x80];
      case 0x83 :
        return GRN_CHAR_KATAKANA;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return grn_nfkc170_char_type_table_e387[utf8[2] - 0x80];
      case 0x88 :
        return GRN_CHAR_SYMBOL;
      case 0x89 :
        return GRN_CHAR_SYMBOL;
      case 0x8a :
        return grn_nfkc170_char_type_table_e38a[utf8[2] - 0x80];
      case 0x8b :
        return GRN_CHAR_SYMBOL;
      case 0x8c :
        return GRN_CHAR_SYMBOL;
      case 0x8d :
        return GRN_CHAR_SYMBOL;
      case 0x8e :
        return GRN_CHAR_SYMBOL;
      case 0x8f :
        return GRN_CHAR_SYMBOL;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe4 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_SYMBOL;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe5 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe6 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe7 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe8 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xe9 :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xea :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return grn_nfkc170_char_type_table_ea93[utf8[2] - 0x80];
      case 0x94 :
        return GRN_CHAR_ALPHA;
      case 0x95 :
        return GRN_CHAR_ALPHA;
      case 0x96 :
        return GRN_CHAR_ALPHA;
      case 0x97 :
        return GRN_CHAR_ALPHA;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xab) {
          return grn_nfkc170_char_type_table_ea98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        return grn_nfkc170_char_type_table_ea99[utf8[2] - 0x80];
      case 0x9a :
        return grn_nfkc170_char_type_table_ea9a[utf8[2] - 0x80];
      case 0x9b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb7) {
          return grn_nfkc170_char_type_table_ea9b[utf8[2] - 0x80];
        }
        break;
      case 0x9c :
        return grn_nfkc170_char_type_table_ea9c[utf8[2] - 0x80];
      case 0x9d :
        return GRN_CHAR_ALPHA;
      case 0x9e :
        return grn_nfkc170_char_type_table_ea9e[utf8[2] - 0x80];
      case 0x9f :
        return grn_nfkc170_char_type_table_ea9f[utf8[2] - 0x80];
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_char_type_table_eaa0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb7) {
          return grn_nfkc170_char_type_table_eaa1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xb3) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8e &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_eaa3[utf8[2] - 0x8e];
        }
        break;
      case 0xa4 :
        return grn_nfkc170_char_type_table_eaa4[utf8[2] - 0x80];
      case 0xa5 :
        return grn_nfkc170_char_type_table_eaa5[utf8[2] - 0x80];
      case 0xa6 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xb2) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_eaa7[utf8[2] - 0x81];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa8) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xa9 :
        return grn_nfkc170_char_type_table_eaa9[utf8[2] - 0x80];
      case 0xaa :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_char_type_table_eaaa[utf8[2] - 0x80];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_char_type_table_eaab[utf8[2] - 0x80];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_eaac[utf8[2] - 0x81];
        }
        break;
      case 0xad :
        return grn_nfkc170_char_type_table_eaad[utf8[2] - 0x80];
      case 0xae :
        return GRN_CHAR_ALPHA;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_char_type_table_eaaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        return GRN_CHAR_KANJI;
      case 0x81 :
        return GRN_CHAR_KANJI;
      case 0x82 :
        return GRN_CHAR_KANJI;
      case 0x83 :
        return GRN_CHAR_KANJI;
      case 0x84 :
        return GRN_CHAR_KANJI;
      case 0x85 :
        return GRN_CHAR_KANJI;
      case 0x86 :
        return GRN_CHAR_KANJI;
      case 0x87 :
        return GRN_CHAR_KANJI;
      case 0x88 :
        return GRN_CHAR_KANJI;
      case 0x89 :
        return GRN_CHAR_KANJI;
      case 0x8a :
        return GRN_CHAR_KANJI;
      case 0x8b :
        return GRN_CHAR_KANJI;
      case 0x8c :
        return GRN_CHAR_KANJI;
      case 0x8d :
        return GRN_CHAR_KANJI;
      case 0x8e :
        return GRN_CHAR_KANJI;
      case 0x8f :
        return GRN_CHAR_KANJI;
      case 0x90 :
        return GRN_CHAR_KANJI;
      case 0x91 :
        return GRN_CHAR_KANJI;
      case 0x92 :
        return GRN_CHAR_KANJI;
      case 0x93 :
        return GRN_CHAR_KANJI;
      case 0x94 :
        return GRN_CHAR_KANJI;
      case 0x95 :
        return GRN_CHAR_KANJI;
      case 0x96 :
        return GRN_CHAR_KANJI;
      case 0x97 :
        return GRN_CHAR_KANJI;
      case 0x98 :
        return GRN_CHAR_KANJI;
      case 0x99 :
        return GRN_CHAR_KANJI;
      case 0x9a :
        return GRN_CHAR_KANJI;
      case 0x9b :
        return GRN_CHAR_KANJI;
      case 0x9c :
        return GRN_CHAR_KANJI;
      case 0x9d :
        return GRN_CHAR_KANJI;
      case 0x9e :
        return GRN_CHAR_KANJI;
      case 0x9f :
        return GRN_CHAR_KANJI;
      case 0xa0 :
        return GRN_CHAR_KANJI;
      case 0xa1 :
        return GRN_CHAR_KANJI;
      case 0xa2 :
        return GRN_CHAR_KANJI;
      case 0xa3 :
        return GRN_CHAR_KANJI;
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        return GRN_CHAR_KANJI;
      case 0xad :
        return GRN_CHAR_KANJI;
      case 0xae :
        return GRN_CHAR_KANJI;
      case 0xaf :
        return GRN_CHAR_KANJI;
      case 0xb0 :
        return GRN_CHAR_KANJI;
      case 0xb1 :
        return GRN_CHAR_KANJI;
      case 0xb2 :
        return GRN_CHAR_KANJI;
      case 0xb3 :
        return GRN_CHAR_KANJI;
      case 0xb4 :
        return GRN_CHAR_KANJI;
      case 0xb5 :
        return GRN_CHAR_KANJI;
      case 0xb6 :
        return GRN_CHAR_KANJI;
      case 0xb7 :
        return GRN_CHAR_KANJI;
      case 0xb8 :
        return GRN_CHAR_KANJI;
      case 0xb9 :
        return GRN_CHAR_KANJI;
      case 0xba :
        return GRN_CHAR_KANJI;
      case 0xbb :
        return GRN_CHAR_KANJI;
      case 0xbc :
        return GRN_CHAR_KANJI;
      case 0xbd :
        return GRN_CHAR_KANJI;
      case 0xbe :
        return GRN_CHAR_KANJI;
      case 0xbf :
        return GRN_CHAR_KANJI;
      default :
        break;
      }
      break;
    case 0xef :
      switch (utf8[1]) {
      case 0xa4 :
        return GRN_CHAR_KANJI;
      case 0xa5 :
        return GRN_CHAR_KANJI;
      case 0xa6 :
        return GRN_CHAR_KANJI;
      case 0xa7 :
        return GRN_CHAR_KANJI;
      case 0xa8 :
        return GRN_CHAR_KANJI;
      case 0xa9 :
        return GRN_CHAR_KANJI;
      case 0xaa :
        return GRN_CHAR_KANJI;
      case 0xab :
        return GRN_CHAR_KANJI;
      case 0xac :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_char_type_table_efac[utf8[2] - 0x80];
        }
        break;
      case 0xad :
        return grn_nfkc170_char_type_table_efad[utf8[2] - 0x80];
      case 0xae :
        return grn_nfkc170_char_type_table_efae[utf8[2] - 0x80];
      case 0xaf :
        return grn_nfkc170_char_type_table_efaf[utf8[2] - 0x80];
      case 0xb0 :
        return GRN_CHAR_ALPHA;
      case 0xb1 :
        return GRN_CHAR_ALPHA;
      case 0xb2 :
        return GRN_CHAR_ALPHA;
      case 0xb3 :
        return GRN_CHAR_ALPHA;
      case 0xb4 :
        return grn_nfkc170_char_type_table_efb4[utf8[2] - 0x80];
      case 0xb5 :
        return grn_nfkc170_char_type_table_efb5[utf8[2] - 0x80];
      case 0xb6 :
        return grn_nfkc170_char_type_table_efb6[utf8[2] - 0x80];
      case 0xb7 :
        return grn_nfkc170_char_type_table_efb7[utf8[2] - 0x80];
      case 0xb8 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_efb8[utf8[2] - 0x90];
        }
        break;
      case 0xb9 :
        return grn_nfkc170_char_type_table_efb9[utf8[2] - 0x80];
      case 0xba :
        return GRN_CHAR_ALPHA;
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_efbc[utf8[2] - 0x81];
        }
        break;
      case 0xbd :
        return grn_nfkc170_char_type_table_efbd[utf8[2] - 0x80];
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return GRN_CHAR_ALPHA;
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_char_type_table_efbf[utf8[2] - 0x82];
        }
        break;
      default :
        break;
      }
      break;
    case 0xf0 :
      switch (utf8[1]) {
      case 0x90 :
        switch (utf8[2]) {
        case 0x80 :
          return grn_nfkc170_char_type_table_f09080[utf8[3] - 0x80];
        case 0x81 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9d) {
            return grn_nfkc170_char_type_table_f09081[utf8[3] - 0x80];
          }
          break;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xba) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x84 :
          return grn_nfkc170_char_type_table_f09084[utf8[3] - 0x80];
        case 0x85 :
          return grn_nfkc170_char_type_table_f09085[utf8[3] - 0x80];
        case 0x86 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa0) {
            return grn_nfkc170_char_type_table_f09086[utf8[3] - 0x80];
          }
          break;
        case 0x87 :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xbc) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0x8a :
          return grn_nfkc170_char_type_table_f0908a[utf8[3] - 0x80];
        case 0x8b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f0908b[utf8[3] - 0x80];
          }
          break;
        case 0x8c :
          return grn_nfkc170_char_type_table_f0908c[utf8[3] - 0x80];
        case 0x8d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb5) {
            return grn_nfkc170_char_type_table_f0908d[utf8[3] - 0x80];
          }
          break;
        case 0x8e :
          return grn_nfkc170_char_type_table_f0908e[utf8[3] - 0x80];
        case 0x8f :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x95) {
            return grn_nfkc170_char_type_table_f0908f[utf8[3] - 0x80];
          }
          break;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return grn_nfkc170_char_type_table_f09092[utf8[3] - 0x80];
        case 0x93 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f09093[utf8[3] - 0x80];
          }
          break;
        case 0x94 :
          return grn_nfkc170_char_type_table_f09094[utf8[3] - 0x80];
        case 0x95 :
          return grn_nfkc170_char_type_table_f09095[utf8[3] - 0x80];
        case 0x96 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbc) {
            return grn_nfkc170_char_type_table_f09096[utf8[3] - 0x80];
          }
          break;
        case 0x97 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb3) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb6) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x9d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa7) {
            return grn_nfkc170_char_type_table_f0909d[utf8[3] - 0x80];
          }
          break;
        case 0x9e :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xba) {
            return grn_nfkc170_char_type_table_f0909e[utf8[3] - 0x80];
          }
          break;
        case 0xa0 :
          return grn_nfkc170_char_type_table_f090a0[utf8[3] - 0x80];
        case 0xa1 :
          return grn_nfkc170_char_type_table_f090a1[utf8[3] - 0x80];
        case 0xa2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaf) {
            return grn_nfkc170_char_type_table_f090a2[utf8[3] - 0x80];
          }
          break;
        case 0xa3 :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f090a3[utf8[3] - 0xa0];
          }
          break;
        case 0xa4 :
          return grn_nfkc170_char_type_table_f090a4[utf8[3] - 0x80];
        case 0xa5 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x99) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xa6 :
          return grn_nfkc170_char_type_table_f090a6[utf8[3] - 0x80];
        case 0xa7 :
          return grn_nfkc170_char_type_table_f090a7[utf8[3] - 0x80];
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb5) {
            return grn_nfkc170_char_type_table_f090a8[utf8[3] - 0x80];
          }
          break;
        case 0xa9 :
          return grn_nfkc170_char_type_table_f090a9[utf8[3] - 0x80];
        case 0xaa :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return grn_nfkc170_char_type_table_f090aa[utf8[3] - 0x80];
          }
          break;
        case 0xab :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb6) {
            return grn_nfkc170_char_type_table_f090ab[utf8[3] - 0x80];
          }
          break;
        case 0xac :
          return grn_nfkc170_char_type_table_f090ac[utf8[3] - 0x80];
        case 0xad :
          return grn_nfkc170_char_type_table_f090ad[utf8[3] - 0x80];
        case 0xae :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaf) {
            return grn_nfkc170_char_type_table_f090ae[utf8[3] - 0x80];
          }
          break;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x88) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xb2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb2) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xb3 :
          return grn_nfkc170_char_type_table_f090b3[utf8[3] - 0x80];
        case 0xb4 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f090b4[utf8[3] - 0x80];
          }
          break;
        case 0xb5 :
          return grn_nfkc170_char_type_table_f090b5[utf8[3] - 0x80];
        case 0xb6 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8f) {
            return grn_nfkc170_char_type_table_f090b6[utf8[3] - 0x80];
          }
          break;
        case 0xb9 :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xbe) {
            return GRN_CHAR_DIGIT;
          }
          break;
        case 0xba :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb1) {
            return grn_nfkc170_char_type_table_f090ba[utf8[3] - 0x80];
          }
          break;
        case 0xbb :
          if (utf8[3] >= 0x82 &&
              utf8[3] <= 0x98) {
            return grn_nfkc170_char_type_table_f090bb[utf8[3] - 0x82];
          }
          break;
        case 0xbc :
          return grn_nfkc170_char_type_table_f090bc[utf8[3] - 0x80];
        case 0xbd :
          return grn_nfkc170_char_type_table_f090bd[utf8[3] - 0x80];
        case 0xbe :
          return grn_nfkc170_char_type_table_f090be[utf8[3] - 0x80];
        case 0xbf :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb6) {
            return grn_nfkc170_char_type_table_f090bf[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x91 :
        switch (utf8[2]) {
        case 0x80 :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0xb7) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x81 :
          if (utf8[3] >= 0x87 &&
              utf8[3] <= 0xb5) {
            return grn_nfkc170_char_type_table_f09181[utf8[3] - 0x87];
          }
          break;
        case 0x82 :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09182[utf8[3] - 0x83];
          }
          break;
        case 0x83 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f09183[utf8[3] - 0x80];
          }
          break;
        case 0x84 :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09184[utf8[3] - 0x83];
          }
          break;
        case 0x85 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb6) {
            return grn_nfkc170_char_type_table_f09185[utf8[3] - 0x80];
          }
          break;
        case 0x86 :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0xb2) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x87 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0xb4) {
            return grn_nfkc170_char_type_table_f09187[utf8[3] - 0x81];
          }
          break;
        case 0x88 :
          return grn_nfkc170_char_type_table_f09188[utf8[3] - 0x80];
        case 0x89 :
          if (utf8[3] == 0x80) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x8a :
          return grn_nfkc170_char_type_table_f0918a[utf8[3] - 0x80];
        case 0x8b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f0918b[utf8[3] - 0x80];
          }
          break;
        case 0x8c :
          if (utf8[3] >= 0x85 &&
              utf8[3] <= 0xbd) {
            return grn_nfkc170_char_type_table_f0918c[utf8[3] - 0x85];
          }
          break;
        case 0x8d :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xa1) {
            return grn_nfkc170_char_type_table_f0918d[utf8[3] - 0x90];
          }
          break;
        case 0x8e :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb7) {
            return grn_nfkc170_char_type_table_f0918e[utf8[3] - 0x80];
          }
          break;
        case 0x8f :
          if (utf8[3] >= 0x91 &&
              utf8[3] <= 0x98) {
            return grn_nfkc170_char_type_table_f0918f[utf8[3] - 0x91];
          }
          break;
        case 0x90 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb4) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x91 :
          if (utf8[3] >= 0x87 &&
              utf8[3] <= 0xa1) {
            return grn_nfkc170_char_type_table_f09191[utf8[3] - 0x87];
          }
          break;
        case 0x92 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaf) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x93 :
          if (utf8[3] >= 0x84 &&
              utf8[3] <= 0x99) {
            return grn_nfkc170_char_type_table_f09193[utf8[3] - 0x84];
          }
          break;
        case 0x96 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xae) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x97 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0x9b) {
            return grn_nfkc170_char_type_table_f09197[utf8[3] - 0x81];
          }
          break;
        case 0x98 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaf) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x99 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0xac) {
            return grn_nfkc170_char_type_table_f09199[utf8[3] - 0x81];
          }
          break;
        case 0x9a :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f0919a[utf8[3] - 0x80];
          }
          break;
        case 0x9b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa3) {
            return grn_nfkc170_char_type_table_f0919b[utf8[3] - 0x80];
          }
          break;
        case 0x9c :
          return grn_nfkc170_char_type_table_f0919c[utf8[3] - 0x80];
        case 0x9d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x86) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xa0 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f091a0[utf8[3] - 0x80];
          }
          break;
        case 0xa2 :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xbf) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xa3 :
          return grn_nfkc170_char_type_table_f091a3[utf8[3] - 0x80];
        case 0xa4 :
          return grn_nfkc170_char_type_table_f091a4[utf8[3] - 0x80];
        case 0xa5 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0x99) {
            return grn_nfkc170_char_type_table_f091a5[utf8[3] - 0x81];
          }
          break;
        case 0xa6 :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f091a6[utf8[3] - 0xa0];
          }
          break;
        case 0xa7 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa3) {
            return grn_nfkc170_char_type_table_f091a7[utf8[3] - 0x80];
          }
          break;
        case 0xa8 :
          return grn_nfkc170_char_type_table_f091a8[utf8[3] - 0x80];
        case 0xa9 :
          return grn_nfkc170_char_type_table_f091a9[utf8[3] - 0x80];
        case 0xaa :
          return grn_nfkc170_char_type_table_f091aa[utf8[3] - 0x80];
        case 0xab :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb8) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xac :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x89) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0xaf :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f091af[utf8[3] - 0x80];
          }
          break;
        case 0xb0 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xae) {
            return grn_nfkc170_char_type_table_f091b0[utf8[3] - 0x80];
          }
          break;
        case 0xb1 :
          return grn_nfkc170_char_type_table_f091b1[utf8[3] - 0x80];
        case 0xb2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8f) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xb4 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb0) {
            return grn_nfkc170_char_type_table_f091b4[utf8[3] - 0x80];
          }
          break;
        case 0xb5 :
          if (utf8[3] >= 0x86 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f091b5[utf8[3] - 0x86];
          }
          break;
        case 0xb6 :
          return grn_nfkc170_char_type_table_f091b6[utf8[3] - 0x80];
        case 0xb7 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa9) {
            return grn_nfkc170_char_type_table_f091b7[utf8[3] - 0x80];
          }
          break;
        case 0xbb :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xb8) {
            return grn_nfkc170_char_type_table_f091bb[utf8[3] - 0xa0];
          }
          break;
        case 0xbc :
          if (utf8[3] >= 0x82 &&
              utf8[3] <= 0xb3) {
            return grn_nfkc170_char_type_table_f091bc[utf8[3] - 0x82];
          }
          break;
        case 0xbd :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0x99) {
            return grn_nfkc170_char_type_table_f091bd[utf8[3] - 0x83];
          }
          break;
        case 0xbe :
          if (utf8[3] == 0xb0) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xbf :
          return grn_nfkc170_char_type_table_f091bf[utf8[3] - 0x80];
        default :
          break;
        }
        break;
      case 0x92 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x99) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x90 :
          return GRN_CHAR_DIGIT;
        case 0x91 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb4) {
            return grn_nfkc170_char_type_table_f09291[utf8[3] - 0x80];
          }
          break;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x83) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xbe :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xbf) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xbf :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb2) {
            return grn_nfkc170_char_type_table_f092bf[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x93 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaf) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x91 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09391[utf8[3] - 0x81];
          }
          break;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          return GRN_CHAR_ALPHA;
        case 0x9d :
          return GRN_CHAR_ALPHA;
        case 0x9e :
          return GRN_CHAR_ALPHA;
        case 0x9f :
          return GRN_CHAR_ALPHA;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          return GRN_CHAR_ALPHA;
        case 0xa9 :
          return GRN_CHAR_ALPHA;
        case 0xaa :
          return GRN_CHAR_ALPHA;
        case 0xab :
          return GRN_CHAR_ALPHA;
        case 0xac :
          return GRN_CHAR_ALPHA;
        case 0xad :
          return GRN_CHAR_ALPHA;
        case 0xae :
          return GRN_CHAR_ALPHA;
        case 0xaf :
          return GRN_CHAR_ALPHA;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return GRN_CHAR_ALPHA;
        case 0xb4 :
          return GRN_CHAR_ALPHA;
        case 0xb5 :
          return GRN_CHAR_ALPHA;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          return GRN_CHAR_ALPHA;
        case 0xb8 :
          return GRN_CHAR_ALPHA;
        case 0xb9 :
          return GRN_CHAR_ALPHA;
        case 0xba :
          return GRN_CHAR_ALPHA;
        case 0xbb :
          return GRN_CHAR_ALPHA;
        case 0xbc :
          return GRN_CHAR_ALPHA;
        case 0xbd :
          return GRN_CHAR_ALPHA;
        case 0xbe :
          return GRN_CHAR_ALPHA;
        case 0xbf :
          return GRN_CHAR_ALPHA;
        default :
          break;
        }
        break;
      case 0x94 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xba) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x86) {
            return GRN_CHAR_ALPHA;
          }
          break;
        default :
          break;
        }
        break;
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f09684[utf8[3] - 0x80];
          }
          break;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb8) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xa9 :
          return grn_nfkc170_char_type_table_f096a9[utf8[3] - 0x80];
        case 0xaa :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbe) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xab :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb5) {
            return grn_nfkc170_char_type_table_f096ab[utf8[3] - 0x80];
          }
          break;
        case 0xac :
          return grn_nfkc170_char_type_table_f096ac[utf8[3] - 0x80];
        case 0xad :
          return grn_nfkc170_char_type_table_f096ad[utf8[3] - 0x80];
        case 0xae :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8f) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xb5 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f096b5[utf8[3] - 0x80];
          }
          break;
        case 0xb9 :
          return GRN_CHAR_ALPHA;
        case 0xba :
          return grn_nfkc170_char_type_table_f096ba[utf8[3] - 0x80];
        case 0xbb :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x93) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xbc :
          return GRN_CHAR_ALPHA;
        case 0xbd :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x90) {
            return grn_nfkc170_char_type_table_f096bd[utf8[3] - 0x80];
          }
          break;
        case 0xbe :
          if (utf8[3] >= 0x93 &&
              utf8[3] <= 0x9f) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xbf :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xb6) {
            return grn_nfkc170_char_type_table_f096bf[utf8[3] - 0xa0];
          }
          break;
        default :
          break;
        }
        break;
      case 0x97 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          return GRN_CHAR_ALPHA;
        case 0x9d :
          return GRN_CHAR_ALPHA;
        case 0x9e :
          return GRN_CHAR_ALPHA;
        case 0x9f :
          return GRN_CHAR_ALPHA;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          return GRN_CHAR_ALPHA;
        case 0xa9 :
          return GRN_CHAR_ALPHA;
        case 0xaa :
          return GRN_CHAR_ALPHA;
        case 0xab :
          return GRN_CHAR_ALPHA;
        case 0xac :
          return GRN_CHAR_ALPHA;
        case 0xad :
          return GRN_CHAR_ALPHA;
        case 0xae :
          return GRN_CHAR_ALPHA;
        case 0xaf :
          return GRN_CHAR_ALPHA;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return GRN_CHAR_ALPHA;
        case 0xb4 :
          return GRN_CHAR_ALPHA;
        case 0xb5 :
          return GRN_CHAR_ALPHA;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          return GRN_CHAR_ALPHA;
        case 0xb8 :
          return GRN_CHAR_ALPHA;
        case 0xb9 :
          return GRN_CHAR_ALPHA;
        case 0xba :
          return GRN_CHAR_ALPHA;
        case 0xbb :
          return GRN_CHAR_ALPHA;
        case 0xbc :
          return GRN_CHAR_ALPHA;
        case 0xbd :
          return GRN_CHAR_ALPHA;
        case 0xbe :
          return GRN_CHAR_ALPHA;
        case 0xbf :
          return GRN_CHAR_ALPHA;
        default :
          break;
        }
        break;
      case 0x98 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          return GRN_CHAR_ALPHA;
        case 0x9d :
          return GRN_CHAR_ALPHA;
        case 0x9e :
          return GRN_CHAR_ALPHA;
        case 0x9f :
          return GRN_CHAR_ALPHA;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          return GRN_CHAR_ALPHA;
        case 0xa9 :
          return GRN_CHAR_ALPHA;
        case 0xaa :
          return GRN_CHAR_ALPHA;
        case 0xab :
          return GRN_CHAR_ALPHA;
        case 0xac :
          return GRN_CHAR_ALPHA;
        case 0xad :
          return GRN_CHAR_ALPHA;
        case 0xae :
          return GRN_CHAR_ALPHA;
        case 0xaf :
          return GRN_CHAR_ALPHA;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return grn_nfkc170_char_type_table_f098b3[utf8[3] - 0x80];
        case 0xb4 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9e) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb2) {
            return GRN_CHAR_ALPHA;
          }
          break;
        default :
          break;
        }
        break;
      case 0x9a :
        switch (utf8[2]) {
        case 0xbf :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc170_char_type_table_f09abf[utf8[3] - 0xb0];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9b :
        switch (utf8[2]) {
        case 0x80 :
          return grn_nfkc170_char_type_table_f09b80[utf8[3] - 0x80];
        case 0x81 :
          return GRN_CHAR_HIRAGANA;
        case 0x82 :
          return GRN_CHAR_HIRAGANA;
        case 0x83 :
          return GRN_CHAR_HIRAGANA;
        case 0x84 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb2) {
            return grn_nfkc170_char_type_table_f09b84[utf8[3] - 0x80];
          }
          break;
        case 0x85 :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09b85[utf8[3] - 0x90];
          }
          break;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbc) {
            return grn_nfkc170_char_type_table_f09bb1[utf8[3] - 0x80];
          }
          break;
        case 0xb2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return grn_nfkc170_char_type_table_f09bb2[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9c :
        switch (utf8[2]) {
        case 0xb0 :
          return GRN_CHAR_SYMBOL;
        case 0xb1 :
          return GRN_CHAR_SYMBOL;
        case 0xb2 :
          return GRN_CHAR_SYMBOL;
        case 0xb3 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbc) {
            return grn_nfkc170_char_type_table_f09cb3[utf8[3] - 0x80];
          }
          break;
        case 0xb4 :
          return GRN_CHAR_SYMBOL;
        case 0xb5 :
          return GRN_CHAR_SYMBOL;
        case 0xb6 :
          return GRN_CHAR_SYMBOL;
        case 0xb7 :
          return GRN_CHAR_SYMBOL;
        case 0xb8 :
          return GRN_CHAR_SYMBOL;
        case 0xb9 :
          return GRN_CHAR_SYMBOL;
        case 0xba :
          return grn_nfkc170_char_type_table_f09cba[utf8[3] - 0x80];
        case 0xbb :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb0) {
            return grn_nfkc170_char_type_table_f09cbb[utf8[3] - 0x80];
          }
          break;
        case 0xbd :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xbf) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0xbe :
          return GRN_CHAR_SYMBOL;
        case 0xbf :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x83) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        default :
          break;
        }
        break;
      case 0x9d :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_SYMBOL;
        case 0x81 :
          return GRN_CHAR_SYMBOL;
        case 0x82 :
          return GRN_CHAR_SYMBOL;
        case 0x83 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb5) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0x84 :
          return grn_nfkc170_char_type_table_f09d84[utf8[3] - 0x80];
        case 0x85 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xac) {
            return grn_nfkc170_char_type_table_f09d85[utf8[3] - 0x80];
          }
          break;
        case 0x86 :
          if (utf8[3] >= 0x83 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09d86[utf8[3] - 0x83];
          }
          break;
        case 0x87 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaa) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0x88 :
          return GRN_CHAR_SYMBOL;
        case 0x89 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x85) {
            return grn_nfkc170_char_type_table_f09d89[utf8[3] - 0x80];
          }
          break;
        case 0x8b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb3) {
            return grn_nfkc170_char_type_table_f09d8b[utf8[3] - 0x80];
          }
          break;
        case 0x8c :
          return GRN_CHAR_SYMBOL;
        case 0x8d :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb8) {
            return grn_nfkc170_char_type_table_f09d8d[utf8[3] - 0x80];
          }
          break;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return grn_nfkc170_char_type_table_f09d91[utf8[3] - 0x80];
        case 0x92 :
          return grn_nfkc170_char_type_table_f09d92[utf8[3] - 0x80];
        case 0x93 :
          return grn_nfkc170_char_type_table_f09d93[utf8[3] - 0x80];
        case 0x94 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc170_char_type_table_f09d94[utf8[3] - 0x80];
          }
          break;
        case 0x95 :
          return grn_nfkc170_char_type_table_f09d95[utf8[3] - 0x80];
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return grn_nfkc170_char_type_table_f09d9a[utf8[3] - 0x80];
        case 0x9b :
          return grn_nfkc170_char_type_table_f09d9b[utf8[3] - 0x80];
        case 0x9c :
          return grn_nfkc170_char_type_table_f09d9c[utf8[3] - 0x80];
        case 0x9d :
          return grn_nfkc170_char_type_table_f09d9d[utf8[3] - 0x80];
        case 0x9e :
          return grn_nfkc170_char_type_table_f09d9e[utf8[3] - 0x80];
        case 0x9f :
          return grn_nfkc170_char_type_table_f09d9f[utf8[3] - 0x80];
        case 0xa0 :
          return GRN_CHAR_SYMBOL;
        case 0xa1 :
          return GRN_CHAR_SYMBOL;
        case 0xa2 :
          return GRN_CHAR_SYMBOL;
        case 0xa3 :
          return GRN_CHAR_SYMBOL;
        case 0xa4 :
          return GRN_CHAR_SYMBOL;
        case 0xa5 :
          return GRN_CHAR_SYMBOL;
        case 0xa6 :
          return GRN_CHAR_SYMBOL;
        case 0xa7 :
          return GRN_CHAR_SYMBOL;
        case 0xa8 :
          if (utf8[3] >= 0xb7 &&
              utf8[3] <= 0xba) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        case 0xa9 :
          if (utf8[3] >= 0xad &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09da9[utf8[3] - 0xad];
          }
          break;
        case 0xaa :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8b) {
            return grn_nfkc170_char_type_table_f09daa[utf8[3] - 0x80];
          }
          break;
        case 0xbc :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xaa) {
            return grn_nfkc170_char_type_table_f09dbc[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9e :
        switch (utf8[2]) {
        case 0x80 :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xbf) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x81 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xad) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x84 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbd) {
            return grn_nfkc170_char_type_table_f09e84[utf8[3] - 0x80];
          }
          break;
        case 0x85 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8f) {
            return grn_nfkc170_char_type_table_f09e85[utf8[3] - 0x80];
          }
          break;
        case 0x8a :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xad) {
            return GRN_CHAR_ALPHA;
          }
          break;
        case 0x8b :
          return grn_nfkc170_char_type_table_f09e8b[utf8[3] - 0x80];
        case 0x93 :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_char_type_table_f09e93[utf8[3] - 0x90];
          }
          break;
        case 0x97 :
          if (utf8[3] >= 0x90 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_char_type_table_f09e97[utf8[3] - 0x90];
          }
          break;
        case 0x9b :
          return grn_nfkc170_char_type_table_f09e9b[utf8[3] - 0x80];
        case 0x9f :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc170_char_type_table_f09e9f[utf8[3] - 0xa0];
          }
          break;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x8f) {
            return grn_nfkc170_char_type_table_f09ea3[utf8[3] - 0x80];
          }
          break;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return grn_nfkc170_char_type_table_f09ea5[utf8[3] - 0x80];
          }
          break;
        case 0xb1 :
          if (utf8[3] >= 0xb1 &&
              utf8[3] <= 0xbf) {
            return GRN_CHAR_DIGIT;
          }
          break;
        case 0xb2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb4) {
            return grn_nfkc170_char_type_table_f09eb2[utf8[3] - 0x80];
          }
          break;
        case 0xb4 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0xbd) {
            return grn_nfkc170_char_type_table_f09eb4[utf8[3] - 0x81];
          }
          break;
        case 0xb8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f09eb8[utf8[3] - 0x80];
          }
          break;
        case 0xb9 :
          if (utf8[3] >= 0x82 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc170_char_type_table_f09eb9[utf8[3] - 0x82];
          }
          break;
        case 0xba :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f09eba[utf8[3] - 0x80];
          }
          break;
        case 0xbb :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xb1) {
            return GRN_CHAR_SYMBOL;
          }
          break;
        default :
          break;
        }
        break;
      case 0x9f :
        switch (utf8[2]) {
        case 0x80 :
          return grn_nfkc170_char_type_table_f09f80[utf8[3] - 0x80];
        case 0x81 :
          return GRN_CHAR_SYMBOL;
        case 0x82 :
          return grn_nfkc170_char_type_table_f09f82[utf8[3] - 0x80];
        case 0x83 :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0xb5) {
            return grn_nfkc170_char_type_table_f09f83[utf8[3] - 0x81];
          }
          break;
        case 0x84 :
          return grn_nfkc170_char_type_table_f09f84[utf8[3] - 0x80];
        case 0x85 :
          return grn_nfkc170_char_type_table_f09f85[utf8[3] - 0x80];
        case 0x86 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xad) {
            return grn_nfkc170_char_type_table_f09f86[utf8[3] - 0x80];
          }
          break;
        case 0x87 :
          if (utf8[3] >= 0xa6 &&
              utf8[3] <= 0xbf) {
            return GRN_CHAR_EMOJI;
          }
          break;
        case 0x88 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f09f88[utf8[3] - 0x80];
          }
          break;
        case 0x89 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa5) {
            return grn_nfkc170_char_type_table_f09f89[utf8[3] - 0x80];
          }
          break;
        case 0x8c :
          return GRN_CHAR_EMOJI;
        case 0x8d :
          return GRN_CHAR_EMOJI;
        case 0x8e :
          return GRN_CHAR_EMOJI;
        case 0x8f :
          return GRN_CHAR_EMOJI;
        case 0x90 :
          return GRN_CHAR_EMOJI;
        case 0x91 :
          return GRN_CHAR_EMOJI;
        case 0x92 :
          return GRN_CHAR_EMOJI;
        case 0x93 :
          return GRN_CHAR_EMOJI;
        case 0x94 :
          return GRN_CHAR_EMOJI;
        case 0x95 :
          return GRN_CHAR_EMOJI;
        case 0x96 :
          return GRN_CHAR_EMOJI;
        case 0x97 :
          return GRN_CHAR_EMOJI;
        case 0x98 :
          return GRN_CHAR_EMOJI;
        case 0x99 :
          return grn_nfkc170_char_type_table_f09f99[utf8[3] - 0x80];
        case 0x9a :
          return GRN_CHAR_EMOJI;
        case 0x9b :
          return GRN_CHAR_EMOJI;
        case 0x9c :
          return GRN_CHAR_SYMBOL;
        case 0x9d :
          return GRN_CHAR_SYMBOL;
        case 0x9e :
          return GRN_CHAR_SYMBOL;
        case 0x9f :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb0) {
            return grn_nfkc170_char_type_table_f09f9f[utf8[3] - 0x80];
          }
          break;
        case 0xa0 :
          return grn_nfkc170_char_type_table_f09fa0[utf8[3] - 0x80];
        case 0xa1 :
          return grn_nfkc170_char_type_table_f09fa1[utf8[3] - 0x80];
        case 0xa2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_char_type_table_f09fa2[utf8[3] - 0x80];
          }
          break;
        case 0xa3 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x98) {
            return grn_nfkc170_char_type_table_f09fa3[utf8[3] - 0x80];
          }
          break;
        case 0xa4 :
          return grn_nfkc170_char_type_table_f09fa4[utf8[3] - 0x80];
        case 0xa5 :
          return grn_nfkc170_char_type_table_f09fa5[utf8[3] - 0x80];
        case 0xa6 :
          return GRN_CHAR_EMOJI;
        case 0xa7 :
          return GRN_CHAR_EMOJI;
        case 0xa8 :
          return GRN_CHAR_SYMBOL;
        case 0xa9 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbc) {
            return grn_nfkc170_char_type_table_f09fa9[utf8[3] - 0x80];
          }
          break;
        case 0xaa :
          return grn_nfkc170_char_type_table_f09faa[utf8[3] - 0x80];
        case 0xab :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb8) {
            return grn_nfkc170_char_type_table_f09fab[utf8[3] - 0x80];
          }
          break;
        case 0xac :
          return GRN_CHAR_SYMBOL;
        case 0xad :
          return GRN_CHAR_SYMBOL;
        case 0xae :
          return grn_nfkc170_char_type_table_f09fae[utf8[3] - 0x80];
        case 0xaf :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xba) {
            return grn_nfkc170_char_type_table_f09faf[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0xa0 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa1 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa2 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa3 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa4 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa5 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa6 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa7 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa8 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xa9 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xaa :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return GRN_CHAR_KANJI;
          }
          break;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xab :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xac :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xad :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return GRN_CHAR_KANJI;
        case 0xb0 :
          return GRN_CHAR_KANJI;
        case 0xb1 :
          return GRN_CHAR_KANJI;
        case 0xb2 :
          return GRN_CHAR_KANJI;
        case 0xb3 :
          return GRN_CHAR_KANJI;
        case 0xb4 :
          return GRN_CHAR_KANJI;
        case 0xb5 :
          return GRN_CHAR_KANJI;
        case 0xb6 :
          return GRN_CHAR_KANJI;
        case 0xb7 :
          return GRN_CHAR_KANJI;
        case 0xb8 :
          return GRN_CHAR_KANJI;
        case 0xb9 :
          return GRN_CHAR_KANJI;
        case 0xba :
          return GRN_CHAR_KANJI;
        case 0xbb :
          return GRN_CHAR_KANJI;
        case 0xbc :
          return GRN_CHAR_KANJI;
        case 0xbd :
          return GRN_CHAR_KANJI;
        case 0xbe :
          return GRN_CHAR_KANJI;
        case 0xbf :
          return GRN_CHAR_KANJI;
        default :
          break;
        }
        break;
      case 0xae :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_KANJI;
        case 0x81 :
          return GRN_CHAR_KANJI;
        case 0x82 :
          return GRN_CHAR_KANJI;
        case 0x83 :
          return GRN_CHAR_KANJI;
        case 0x84 :
          return GRN_CHAR_KANJI;
        case 0x85 :
          return GRN_CHAR_KANJI;
        case 0x86 :
          return GRN_CHAR_KANJI;
        case 0x87 :
          return GRN_CHAR_KANJI;
        case 0x88 :
          return GRN_CHAR_KANJI;
        case 0x89 :
          return GRN_CHAR_KANJI;
        case 0x8a :
          return GRN_CHAR_KANJI;
        case 0x8b :
          return GRN_CHAR_KANJI;
        case 0x8c :
          return GRN_CHAR_KANJI;
        case 0x8d :
          return GRN_CHAR_KANJI;
        case 0x8e :
          return GRN_CHAR_KANJI;
        case 0x8f :
          return GRN_CHAR_KANJI;
        case 0x90 :
          return GRN_CHAR_KANJI;
        case 0x91 :
          return GRN_CHAR_KANJI;
        case 0x92 :
          return GRN_CHAR_KANJI;
        case 0x93 :
          return GRN_CHAR_KANJI;
        case 0x94 :
          return GRN_CHAR_KANJI;
        case 0x95 :
          return GRN_CHAR_KANJI;
        case 0x96 :
          return GRN_CHAR_KANJI;
        case 0x97 :
          return GRN_CHAR_KANJI;
        case 0x98 :
          return GRN_CHAR_KANJI;
        case 0x99 :
          return GRN_CHAR_KANJI;
        case 0x9a :
          return GRN_CHAR_KANJI;
        case 0x9b :
          return GRN_CHAR_KANJI;
        case 0x9c :
          return GRN_CHAR_KANJI;
        case 0x9d :
          return GRN_CHAR_KANJI;
        case 0x9e :
          return GRN_CHAR_KANJI;
        case 0x9f :
          return GRN_CHAR_KANJI;
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          return GRN_CHAR_KANJI;
        case 0xa9 :
          return GRN_CHAR_KANJI;
        case 0xaa :
          return GRN_CHAR_KANJI;
        case 0xab :
          return GRN_CHAR_KANJI;
        case 0xac :
          return GRN_CHAR_KANJI;
        case 0xad :
          return GRN_CHAR_KANJI;
        case 0xae :
          return GRN_CHAR_KANJI;
        case 0xaf :
          return grn_nfkc170_char_type_table_f0aeaf[utf8[3] - 0x80];
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return GRN_CHAR_ALPHA;
        case 0xb4 :
          return GRN_CHAR_ALPHA;
        case 0xb5 :
          return GRN_CHAR_ALPHA;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          return GRN_CHAR_ALPHA;
        case 0xb8 :
          return GRN_CHAR_ALPHA;
        case 0xb9 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9d) {
            return GRN_CHAR_ALPHA;
          }
          break;
        default :
          break;
        }
        break;
      case 0xaf :
        switch (utf8[2]) {
        case 0xa0 :
          return GRN_CHAR_KANJI;
        case 0xa1 :
          return GRN_CHAR_KANJI;
        case 0xa2 :
          return GRN_CHAR_KANJI;
        case 0xa3 :
          return GRN_CHAR_KANJI;
        case 0xa4 :
          return GRN_CHAR_KANJI;
        case 0xa5 :
          return GRN_CHAR_KANJI;
        case 0xa6 :
          return GRN_CHAR_KANJI;
        case 0xa7 :
          return GRN_CHAR_KANJI;
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return GRN_CHAR_KANJI;
          }
          break;
        default :
          break;
        }
        break;
      case 0xb0 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          return GRN_CHAR_ALPHA;
        case 0x9d :
          return GRN_CHAR_ALPHA;
        case 0x9e :
          return GRN_CHAR_ALPHA;
        case 0x9f :
          return GRN_CHAR_ALPHA;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          return GRN_CHAR_ALPHA;
        case 0xa9 :
          return GRN_CHAR_ALPHA;
        case 0xaa :
          return GRN_CHAR_ALPHA;
        case 0xab :
          return GRN_CHAR_ALPHA;
        case 0xac :
          return GRN_CHAR_ALPHA;
        case 0xad :
          return GRN_CHAR_ALPHA;
        case 0xae :
          return GRN_CHAR_ALPHA;
        case 0xaf :
          return GRN_CHAR_ALPHA;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return GRN_CHAR_ALPHA;
        case 0xb4 :
          return GRN_CHAR_ALPHA;
        case 0xb5 :
          return GRN_CHAR_ALPHA;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          return GRN_CHAR_ALPHA;
        case 0xb8 :
          return GRN_CHAR_ALPHA;
        case 0xb9 :
          return GRN_CHAR_ALPHA;
        case 0xba :
          return GRN_CHAR_ALPHA;
        case 0xbb :
          return GRN_CHAR_ALPHA;
        case 0xbc :
          return GRN_CHAR_ALPHA;
        case 0xbd :
          return GRN_CHAR_ALPHA;
        case 0xbe :
          return GRN_CHAR_ALPHA;
        case 0xbf :
          return GRN_CHAR_ALPHA;
        default :
          break;
        }
        break;
      case 0xb1 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return grn_nfkc170_char_type_table_f0b18d[utf8[3] - 0x80];
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          return GRN_CHAR_ALPHA;
        case 0x9d :
          return GRN_CHAR_ALPHA;
        case 0x9e :
          return GRN_CHAR_ALPHA;
        case 0x9f :
          return GRN_CHAR_ALPHA;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          return GRN_CHAR_ALPHA;
        case 0xa9 :
          return GRN_CHAR_ALPHA;
        case 0xaa :
          return GRN_CHAR_ALPHA;
        case 0xab :
          return GRN_CHAR_ALPHA;
        case 0xac :
          return GRN_CHAR_ALPHA;
        case 0xad :
          return GRN_CHAR_ALPHA;
        case 0xae :
          return GRN_CHAR_ALPHA;
        case 0xaf :
          return GRN_CHAR_ALPHA;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return GRN_CHAR_ALPHA;
        case 0xb4 :
          return GRN_CHAR_ALPHA;
        case 0xb5 :
          return GRN_CHAR_ALPHA;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          return GRN_CHAR_ALPHA;
        case 0xb8 :
          return GRN_CHAR_ALPHA;
        case 0xb9 :
          return GRN_CHAR_ALPHA;
        case 0xba :
          return GRN_CHAR_ALPHA;
        case 0xbb :
          return GRN_CHAR_ALPHA;
        case 0xbc :
          return GRN_CHAR_ALPHA;
        case 0xbd :
          return GRN_CHAR_ALPHA;
        case 0xbe :
          return GRN_CHAR_ALPHA;
        case 0xbf :
          return GRN_CHAR_ALPHA;
        default :
          break;
        }
        break;
      case 0xb2 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          return GRN_CHAR_ALPHA;
        case 0x92 :
          return GRN_CHAR_ALPHA;
        case 0x93 :
          return GRN_CHAR_ALPHA;
        case 0x94 :
          return GRN_CHAR_ALPHA;
        case 0x95 :
          return GRN_CHAR_ALPHA;
        case 0x96 :
          return GRN_CHAR_ALPHA;
        case 0x97 :
          return GRN_CHAR_ALPHA;
        case 0x98 :
          return GRN_CHAR_ALPHA;
        case 0x99 :
          return GRN_CHAR_ALPHA;
        case 0x9a :
          return GRN_CHAR_ALPHA;
        case 0x9b :
          return GRN_CHAR_ALPHA;
        case 0x9c :
          return GRN_CHAR_ALPHA;
        case 0x9d :
          return GRN_CHAR_ALPHA;
        case 0x9e :
          return GRN_CHAR_ALPHA;
        case 0x9f :
          return GRN_CHAR_ALPHA;
        case 0xa0 :
          return GRN_CHAR_ALPHA;
        case 0xa1 :
          return GRN_CHAR_ALPHA;
        case 0xa2 :
          return GRN_CHAR_ALPHA;
        case 0xa3 :
          return GRN_CHAR_ALPHA;
        case 0xa4 :
          return GRN_CHAR_ALPHA;
        case 0xa5 :
          return GRN_CHAR_ALPHA;
        case 0xa6 :
          return GRN_CHAR_ALPHA;
        case 0xa7 :
          return GRN_CHAR_ALPHA;
        case 0xa8 :
          return GRN_CHAR_ALPHA;
        case 0xa9 :
          return GRN_CHAR_ALPHA;
        case 0xaa :
          return GRN_CHAR_ALPHA;
        case 0xab :
          return GRN_CHAR_ALPHA;
        case 0xac :
          return GRN_CHAR_ALPHA;
        case 0xad :
          return GRN_CHAR_ALPHA;
        case 0xae :
          return GRN_CHAR_ALPHA;
        case 0xaf :
          return GRN_CHAR_ALPHA;
        case 0xb0 :
          return GRN_CHAR_ALPHA;
        case 0xb1 :
          return GRN_CHAR_ALPHA;
        case 0xb2 :
          return GRN_CHAR_ALPHA;
        case 0xb3 :
          return GRN_CHAR_ALPHA;
        case 0xb4 :
          return GRN_CHAR_ALPHA;
        case 0xb5 :
          return GRN_CHAR_ALPHA;
        case 0xb6 :
          return GRN_CHAR_ALPHA;
        case 0xb7 :
          return GRN_CHAR_ALPHA;
        case 0xb8 :
          return GRN_CHAR_ALPHA;
        case 0xb9 :
          return GRN_CHAR_ALPHA;
        case 0xba :
          return GRN_CHAR_ALPHA;
        case 0xbb :
          return GRN_CHAR_ALPHA;
        case 0xbc :
          return GRN_CHAR_ALPHA;
        case 0xbd :
          return GRN_CHAR_ALPHA;
        case 0xbe :
          return GRN_CHAR_ALPHA;
        case 0xbf :
          return GRN_CHAR_ALPHA;
        default :
          break;
        }
        break;
      case 0xb3 :
        switch (utf8[2]) {
        case 0x80 :
          return GRN_CHAR_ALPHA;
        case 0x81 :
          return GRN_CHAR_ALPHA;
        case 0x82 :
          return GRN_CHAR_ALPHA;
        case 0x83 :
          return GRN_CHAR_ALPHA;
        case 0x84 :
          return GRN_CHAR_ALPHA;
        case 0x85 :
          return GRN_CHAR_ALPHA;
        case 0x86 :
          return GRN_CHAR_ALPHA;
        case 0x87 :
          return GRN_CHAR_ALPHA;
        case 0x88 :
          return GRN_CHAR_ALPHA;
        case 0x89 :
          return GRN_CHAR_ALPHA;
        case 0x8a :
          return GRN_CHAR_ALPHA;
        case 0x8b :
          return GRN_CHAR_ALPHA;
        case 0x8c :
          return GRN_CHAR_ALPHA;
        case 0x8d :
          return GRN_CHAR_ALPHA;
        case 0x8e :
          return GRN_CHAR_ALPHA;
        case 0x8f :
          return GRN_CHAR_ALPHA;
        case 0x90 :
          return GRN_CHAR_ALPHA;
        case 0x91 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb9) {
            return GRN_CHAR_ALPHA;
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return GRN_CHAR_OTHERS;
}

static const char *grn_nfkc170_decompose_table_[] = {
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a"
};

static const char *grn_nfkc170_decompose_table_c2[] = {
  "\x20", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xcc\x88", NULL, "\x61", NULL, NULL, NULL, NULL, "\xcc\x84",
  NULL, NULL, "\x32", "\x33", "\xcc\x81", "\xce\xbc", NULL, NULL,
  "\xcc\xa7", "\x31", "\x6f", NULL, "\x31\xe2\x81\x84\x34", "\x31\xe2\x81\x84\x32", "\x33\xe2\x81\x84\x34"
};

static const char *grn_nfkc170_decompose_table_c3[] = {
  "\xc3\xa0", "\xc3\xa1", "\xc3\xa2", "\xc3\xa3", "\xc3\xa4", "\xc3\xa5", "\xc3\xa6", "\xc3\xa7",
  "\xc3\xa8", "\xc3\xa9", "\xc3\xaa", "\xc3\xab", "\xc3\xac", "\xc3\xad", "\xc3\xae", "\xc3\xaf",
  "\xc3\xb0", "\xc3\xb1", "\xc3\xb2", "\xc3\xb3", "\xc3\xb4", "\xc3\xb5", "\xc3\xb6", NULL,
  "\xc3\xb8", "\xc3\xb9", "\xc3\xba", "\xc3\xbb", "\xc3\xbc", "\xc3\xbd", "\xc3\xbe"
};

static const char *grn_nfkc170_decompose_table_c4[] = {
  "\xc4\x81", NULL, "\xc4\x83", NULL, "\xc4\x85", NULL, "\xc4\x87", NULL,
  "\xc4\x89", NULL, "\xc4\x8b", NULL, "\xc4\x8d", NULL, "\xc4\x8f", NULL,
  "\xc4\x91", NULL, "\xc4\x93", NULL, "\xc4\x95", NULL, "\xc4\x97", NULL,
  "\xc4\x99", NULL, "\xc4\x9b", NULL, "\xc4\x9d", NULL, "\xc4\x9f", NULL,
  "\xc4\xa1", NULL, "\xc4\xa3", NULL, "\xc4\xa5", NULL, "\xc4\xa7", NULL,
  "\xc4\xa9", NULL, "\xc4\xab", NULL, "\xc4\xad", NULL, "\xc4\xaf", NULL,
  "\x69", NULL, "\x69\x6a", "\x69\x6a", "\xc4\xb5", NULL, "\xc4\xb7", NULL,
  NULL, "\xc4\xba", NULL, "\xc4\xbc", NULL, "\xc4\xbe", NULL, "\x6c\xc2\xb7"
};

static const char *grn_nfkc170_decompose_table_c5[] = {
  "\x6c\xc2\xb7", "\xc5\x82", NULL, "\xc5\x84", NULL, "\xc5\x86", NULL, "\xc5\x88",
  NULL, "\xca\xbc\x6e", "\xc5\x8b", NULL, "\xc5\x8d", NULL, "\xc5\x8f", NULL,
  "\xc5\x91", NULL, "\xc5\x93", NULL, "\xc5\x95", NULL, "\xc5\x97", NULL,
  "\xc5\x99", NULL, "\xc5\x9b", NULL, "\xc5\x9d", NULL, "\xc5\x9f", NULL,
  "\xc5\xa1", NULL, "\xc5\xa3", NULL, "\xc5\xa5", NULL, "\xc5\xa7", NULL,
  "\xc5\xa9", NULL, "\xc5\xab", NULL, "\xc5\xad", NULL, "\xc5\xaf", NULL,
  "\xc5\xb1", NULL, "\xc5\xb3", NULL, "\xc5\xb5", NULL, "\xc5\xb7", NULL,
  "\xc3\xbf", "\xc5\xba", NULL, "\xc5\xbc", NULL, "\xc5\xbe", NULL, "\x73"
};

static const char *grn_nfkc170_decompose_table_c6[] = {
  "\xc9\x93", "\xc6\x83", NULL, "\xc6\x85", NULL, "\xc9\x94", "\xc6\x88", NULL,
  "\xc9\x96", "\xc9\x97", "\xc6\x8c", NULL, NULL, "\xc7\x9d", "\xc9\x99", "\xc9\x9b",
  "\xc6\x92", NULL, "\xc9\xa0", "\xc9\xa3", NULL, "\xc9\xa9", "\xc9\xa8", "\xc6\x99",
  NULL, NULL, NULL, "\xc9\xaf", "\xc9\xb2", NULL, "\xc9\xb5", "\xc6\xa1",
  NULL, "\xc6\xa3", NULL, "\xc6\xa5", NULL, "\xca\x80", "\xc6\xa8", NULL,
  "\xca\x83", NULL, NULL, "\xc6\xad", NULL, "\xca\x88", "\xc6\xb0", NULL,
  "\xca\x8a", "\xca\x8b", "\xc6\xb4", NULL, "\xc6\xb6", NULL, "\xca\x92", "\xc6\xb9",
  NULL, NULL, NULL, "\xc6\xbd"
};

static const char *grn_nfkc170_decompose_table_c7[] = {
  "\x64\xc5\xbe", "\x64\xc5\xbe", "\x64\xc5\xbe", "\x6c\x6a", "\x6c\x6a", "\x6c\x6a", "\x6e\x6a", "\x6e\x6a",
  "\x6e\x6a", "\xc7\x8e", NULL, "\xc7\x90", NULL, "\xc7\x92", NULL, "\xc7\x94",
  NULL, "\xc7\x96", NULL, "\xc7\x98", NULL, "\xc7\x9a", NULL, "\xc7\x9c",
  NULL, NULL, "\xc7\x9f", NULL, "\xc7\xa1", NULL, "\xc7\xa3", NULL,
  "\xc7\xa5", NULL, "\xc7\xa7", NULL, "\xc7\xa9", NULL, "\xc7\xab", NULL,
  "\xc7\xad", NULL, "\xc7\xaf", NULL, NULL, "\x64\x7a", "\x64\x7a", "\x64\x7a",
  "\xc7\xb5", NULL, "\xc6\x95", "\xc6\xbf", "\xc7\xb9", NULL, "\xc7\xbb", NULL,
  "\xc7\xbd", NULL, "\xc7\xbf"
};

static const char *grn_nfkc170_decompose_table_c8[] = {
  "\xc8\x81", NULL, "\xc8\x83", NULL, "\xc8\x85", NULL, "\xc8\x87", NULL,
  "\xc8\x89", NULL, "\xc8\x8b", NULL, "\xc8\x8d", NULL, "\xc8\x8f", NULL,
  "\xc8\x91", NULL, "\xc8\x93", NULL, "\xc8\x95", NULL, "\xc8\x97", NULL,
  "\xc8\x99", NULL, "\xc8\x9b", NULL, "\xc8\x9d", NULL, "\xc8\x9f", NULL,
  "\xc6\x9e", NULL, "\xc8\xa3", NULL, "\xc8\xa5", NULL, "\xc8\xa7", NULL,
  "\xc8\xa9", NULL, "\xc8\xab", NULL, "\xc8\xad", NULL, "\xc8\xaf", NULL,
  "\xc8\xb1", NULL, "\xc8\xb3", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe2\xb1\xa5", "\xc8\xbc", NULL, "\xc6\x9a", "\xe2\xb1\xa6"
};

static const char *grn_nfkc170_decompose_table_c9[] = {
  "\xc9\x82", NULL, "\xc6\x80", "\xca\x89", "\xca\x8c", "\xc9\x87", NULL, "\xc9\x89",
  NULL, "\xc9\x8b", NULL, "\xc9\x8d", NULL, "\xc9\x8f"
};

static const char *grn_nfkc170_decompose_table_ca[] = {
  "\x68", "\xc9\xa6", "\x6a", "\x72", "\xc9\xb9", "\xc9\xbb", "\xca\x81", "\x77",
  "\x79"
};

static const char *grn_nfkc170_decompose_table_cb[] = {
  "\xcc\x86", "\xcc\x87", "\xcc\x8a", "\xcc\xa8", "\xcc\x83", "\xcc\x8b", NULL, NULL,
  "\xc9\xa3", "\x6c", "\x73", "\x78", "\xca\x95"
};

static const char *grn_nfkc170_decompose_table_cd[] = {
  "\xcc\x80", "\xcc\x81", NULL, "\xcc\x93", "\xcc\x88\xcc\x81", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xcd\xb1", NULL, "\xcd\xb3", NULL, "\xca\xb9", NULL, "\xcd\xb7", NULL,
  NULL, NULL, "\xcd\x85", NULL, NULL, NULL, "\x3b", "\xcf\xb3"
};

static const char *grn_nfkc170_decompose_table_ce[] = {
  "\xcc\x81", "\xcc\x88\xcc\x81", "\xce\xac", "\xc2\xb7", "\xce\xad", "\xce\xae", "\xce\xaf", NULL,
  "\xcf\x8c", NULL, "\xcf\x8d", "\xcf\x8e", NULL, "\xce\xb1", "\xce\xb2", "\xce\xb3",
  "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb",
  "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", NULL, "\xcf\x83",
  "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xcf\x8a", "\xcf\x8b"
};

static const char *grn_nfkc170_decompose_table_cf[] = {
  "\xcf\x97", "\xce\xb2", "\xce\xb8", "\xcf\x85", "\xcf\x8d", "\xcf\x8b", "\xcf\x86", "\xcf\x80",
  NULL, "\xcf\x99", NULL, "\xcf\x9b", NULL, "\xcf\x9d", NULL, "\xcf\x9f",
  NULL, "\xcf\xa1", NULL, "\xcf\xa3", NULL, "\xcf\xa5", NULL, "\xcf\xa7",
  NULL, "\xcf\xa9", NULL, "\xcf\xab", NULL, "\xcf\xad", NULL, "\xcf\xaf",
  NULL, "\xce\xba", "\xcf\x81", "\xcf\x82", NULL, "\xce\xb8", "\xce\xb5", NULL,
  "\xcf\xb8", NULL, "\xcf\x83", "\xcf\xbb", NULL, NULL, "\xcd\xbb", "\xcd\xbc",
  "\xcd\xbd"
};

static const char *grn_nfkc170_decompose_table_d0[] = {
  "\xd1\x90", "\xd1\x91", "\xd1\x92", "\xd1\x93", "\xd1\x94", "\xd1\x95", "\xd1\x96", "\xd1\x97",
  "\xd1\x98", "\xd1\x99", "\xd1\x9a", "\xd1\x9b", "\xd1\x9c", "\xd1\x9d", "\xd1\x9e", "\xd1\x9f",
  "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7",
  "\xd0\xb8", "\xd0\xb9", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbd", "\xd0\xbe", "\xd0\xbf",
  "\xd1\x80", "\xd1\x81", "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87",
  "\xd1\x88", "\xd1\x89", "\xd1\x8a", "\xd1\x8b", "\xd1\x8c", "\xd1\x8d", "\xd1\x8e", "\xd1\x8f"
};

static const char *grn_nfkc170_decompose_table_d1[] = {
  "\xd1\xa1", NULL, "\xd1\xa3", NULL, "\xd1\xa5", NULL, "\xd1\xa7", NULL,
  "\xd1\xa9", NULL, "\xd1\xab", NULL, "\xd1\xad", NULL, "\xd1\xaf", NULL,
  "\xd1\xb1", NULL, "\xd1\xb3", NULL, "\xd1\xb5", NULL, "\xd1\xb7", NULL,
  "\xd1\xb9", NULL, "\xd1\xbb", NULL, "\xd1\xbd", NULL, "\xd1\xbf"
};

static const char *grn_nfkc170_decompose_table_d2[] = {
  "\xd2\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xd2\x8b", NULL, "\xd2\x8d", NULL, "\xd2\x8f", NULL,
  "\xd2\x91", NULL, "\xd2\x93", NULL, "\xd2\x95", NULL, "\xd2\x97", NULL,
  "\xd2\x99", NULL, "\xd2\x9b", NULL, "\xd2\x9d", NULL, "\xd2\x9f", NULL,
  "\xd2\xa1", NULL, "\xd2\xa3", NULL, "\xd2\xa5", NULL, "\xd2\xa7", NULL,
  "\xd2\xa9", NULL, "\xd2\xab", NULL, "\xd2\xad", NULL, "\xd2\xaf", NULL,
  "\xd2\xb1", NULL, "\xd2\xb3", NULL, "\xd2\xb5", NULL, "\xd2\xb7", NULL,
  "\xd2\xb9", NULL, "\xd2\xbb", NULL, "\xd2\xbd", NULL, "\xd2\xbf"
};

static const char *grn_nfkc170_decompose_table_d3[] = {
  "\xd3\x8f", "\xd3\x82", NULL, "\xd3\x84", NULL, "\xd3\x86", NULL, "\xd3\x88",
  NULL, "\xd3\x8a", NULL, "\xd3\x8c", NULL, "\xd3\x8e", NULL, NULL,
  "\xd3\x91", NULL, "\xd3\x93", NULL, "\xd3\x95", NULL, "\xd3\x97", NULL,
  "\xd3\x99", NULL, "\xd3\x9b", NULL, "\xd3\x9d", NULL, "\xd3\x9f", NULL,
  "\xd3\xa1", NULL, "\xd3\xa3", NULL, "\xd3\xa5", NULL, "\xd3\xa7", NULL,
  "\xd3\xa9", NULL, "\xd3\xab", NULL, "\xd3\xad", NULL, "\xd3\xaf", NULL,
  "\xd3\xb1", NULL, "\xd3\xb3", NULL, "\xd3\xb5", NULL, "\xd3\xb7", NULL,
  "\xd3\xb9", NULL, "\xd3\xbb", NULL, "\xd3\xbd", NULL, "\xd3\xbf"
};

static const char *grn_nfkc170_decompose_table_d4[] = {
  "\xd4\x81", NULL, "\xd4\x83", NULL, "\xd4\x85", NULL, "\xd4\x87", NULL,
  "\xd4\x89", NULL, "\xd4\x8b", NULL, "\xd4\x8d", NULL, "\xd4\x8f", NULL,
  "\xd4\x91", NULL, "\xd4\x93", NULL, "\xd4\x95", NULL, "\xd4\x97", NULL,
  "\xd4\x99", NULL, "\xd4\x9b", NULL, "\xd4\x9d", NULL, "\xd4\x9f", NULL,
  "\xd4\xa1", NULL, "\xd4\xa3", NULL, "\xd4\xa5", NULL, "\xd4\xa7", NULL,
  "\xd4\xa9", NULL, "\xd4\xab", NULL, "\xd4\xad", NULL, "\xd4\xaf", NULL,
  NULL, "\xd5\xa1", "\xd5\xa2", "\xd5\xa3", "\xd5\xa4", "\xd5\xa5", "\xd5\xa6", "\xd5\xa7",
  "\xd5\xa8", "\xd5\xa9", "\xd5\xaa", "\xd5\xab", "\xd5\xac", "\xd5\xad", "\xd5\xae", "\xd5\xaf"
};

static const char *grn_nfkc170_decompose_table_d5[] = {
  "\xd5\xb0", "\xd5\xb1", "\xd5\xb2", "\xd5\xb3", "\xd5\xb4", "\xd5\xb5", "\xd5\xb6", "\xd5\xb7",
  "\xd5\xb8", "\xd5\xb9", "\xd5\xba", "\xd5\xbb", "\xd5\xbc", "\xd5\xbd", "\xd5\xbe", "\xd5\xbf",
  "\xd6\x80", "\xd6\x81", "\xd6\x82", "\xd6\x83", "\xd6\x84", "\xd6\x85", "\xd6\x86"
};

static const char *grn_nfkc170_decompose_table_d9[] = {
  "\xd8\xa7\xd9\xb4", "\xd9\x88\xd9\xb4", "\xdb\x87\xd9\xb4", "\xd9\x8a\xd9\xb4"
};

static const char *grn_nfkc170_decompose_table_e0a5[] = {
  "\xe0\xa4\x95\xe0\xa4\xbc", "\xe0\xa4\x96\xe0\xa4\xbc", "\xe0\xa4\x97\xe0\xa4\xbc", "\xe0\xa4\x9c\xe0\xa4\xbc", "\xe0\xa4\xa1\xe0\xa4\xbc", "\xe0\xa4\xa2\xe0\xa4\xbc", "\xe0\xa4\xab\xe0\xa4\xbc", "\xe0\xa4\xaf\xe0\xa4\xbc"
};

static const char *grn_nfkc170_decompose_table_e0a7[] = {
  "\xe0\xa6\xa1\xe0\xa6\xbc", "\xe0\xa6\xa2\xe0\xa6\xbc", NULL, "\xe0\xa6\xaf\xe0\xa6\xbc"
};

static const char *grn_nfkc170_decompose_table_e0a8[] = {
  "\xe0\xa8\xb2\xe0\xa8\xbc", NULL, NULL, "\xe0\xa8\xb8\xe0\xa8\xbc"
};

static const char *grn_nfkc170_decompose_table_e0a9[] = {
  "\xe0\xa8\x96\xe0\xa8\xbc", "\xe0\xa8\x97\xe0\xa8\xbc", "\xe0\xa8\x9c\xe0\xa8\xbc", NULL, NULL, "\xe0\xa8\xab\xe0\xa8\xbc"
};

static const char *grn_nfkc170_decompose_table_e0ad[] = {
  "\xe0\xac\xa1\xe0\xac\xbc", "\xe0\xac\xa2\xe0\xac\xbc"
};

static const char *grn_nfkc170_decompose_table_e0bb[] = {
  "\xe0\xba\xab\xe0\xba\x99", "\xe0\xba\xab\xe0\xba\xa1"
};

static const char *grn_nfkc170_decompose_table_e0bd[] = {
  "\xe0\xbd\x82\xe0\xbe\xb7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe0\xbd\x8c\xe0\xbe\xb7", NULL, NULL, NULL, NULL, "\xe0\xbd\x91\xe0\xbe\xb7",
  NULL, NULL, NULL, NULL, "\xe0\xbd\x96\xe0\xbe\xb7", NULL, NULL, NULL,
  NULL, "\xe0\xbd\x9b\xe0\xbe\xb7", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe0\xbd\x80\xe0\xbe\xb5", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe0\xbd\xb1\xe0\xbd\xb2", NULL, "\xe0\xbd\xb1\xe0\xbd\xb4", "\xe0\xbe\xb2\xe0\xbe\x80", "\xe0\xbe\xb2\xe0\xbd\xb1\xe0\xbe\x80", "\xe0\xbe\xb3\xe0\xbe\x80", "\xe0\xbe\xb3\xe0\xbd\xb1\xe0\xbe\x80"
};

static const char *grn_nfkc170_decompose_table_e0be[] = {
  "\xe0\xbd\xb1\xe0\xbe\x80", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe0\xbe\x92\xe0\xbe\xb7", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe0\xbe\x9c\xe0\xbe\xb7", NULL, NULL, NULL,
  NULL, "\xe0\xbe\xa1\xe0\xbe\xb7", NULL, NULL, NULL, NULL, "\xe0\xbe\xa6\xe0\xbe\xb7", NULL,
  NULL, NULL, NULL, "\xe0\xbe\xab\xe0\xbe\xb7", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe0\xbe\x90\xe0\xbe\xb5"
};

static const char *grn_nfkc170_decompose_table_e182[] = {
  "\xe2\xb4\x80", "\xe2\xb4\x81", "\xe2\xb4\x82", "\xe2\xb4\x83", "\xe2\xb4\x84", "\xe2\xb4\x85", "\xe2\xb4\x86", "\xe2\xb4\x87",
  "\xe2\xb4\x88", "\xe2\xb4\x89", "\xe2\xb4\x8a", "\xe2\xb4\x8b", "\xe2\xb4\x8c", "\xe2\xb4\x8d", "\xe2\xb4\x8e", "\xe2\xb4\x8f",
  "\xe2\xb4\x90", "\xe2\xb4\x91", "\xe2\xb4\x92", "\xe2\xb4\x93", "\xe2\xb4\x94", "\xe2\xb4\x95", "\xe2\xb4\x96", "\xe2\xb4\x97",
  "\xe2\xb4\x98", "\xe2\xb4\x99", "\xe2\xb4\x9a", "\xe2\xb4\x9b", "\xe2\xb4\x9c", "\xe2\xb4\x9d", "\xe2\xb4\x9e", "\xe2\xb4\x9f"
};

static const char *grn_nfkc170_decompose_table_e183[] = {
  "\xe2\xb4\xa0", "\xe2\xb4\xa1", "\xe2\xb4\xa2", "\xe2\xb4\xa3", "\xe2\xb4\xa4", "\xe2\xb4\xa5", NULL, "\xe2\xb4\xa7",
  NULL, NULL, NULL, NULL, NULL, "\xe2\xb4\xad", NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\x83\x9c"
};

static const char *grn_nfkc170_decompose_table_e18e[] = {
  "\xea\xad\xb0", "\xea\xad\xb1", "\xea\xad\xb2", "\xea\xad\xb3", "\xea\xad\xb4", "\xea\xad\xb5", "\xea\xad\xb6", "\xea\xad\xb7",
  "\xea\xad\xb8", "\xea\xad\xb9", "\xea\xad\xba", "\xea\xad\xbb", "\xea\xad\xbc", "\xea\xad\xbd", "\xea\xad\xbe", "\xea\xad\xbf",
  "\xea\xae\x80", "\xea\xae\x81", "\xea\xae\x82", "\xea\xae\x83", "\xea\xae\x84", "\xea\xae\x85", "\xea\xae\x86", "\xea\xae\x87",
  "\xea\xae\x88", "\xea\xae\x89", "\xea\xae\x8a", "\xea\xae\x8b", "\xea\xae\x8c", "\xea\xae\x8d", "\xea\xae\x8e", "\xea\xae\x8f"
};

static const char *grn_nfkc170_decompose_table_e18f[] = {
  "\xea\xae\x90", "\xea\xae\x91", "\xea\xae\x92", "\xea\xae\x93", "\xea\xae\x94", "\xea\xae\x95", "\xea\xae\x96", "\xea\xae\x97",
  "\xea\xae\x98", "\xea\xae\x99", "\xea\xae\x9a", "\xea\xae\x9b", "\xea\xae\x9c", "\xea\xae\x9d", "\xea\xae\x9e", "\xea\xae\x9f",
  "\xea\xae\xa0", "\xea\xae\xa1", "\xea\xae\xa2", "\xea\xae\xa3", "\xea\xae\xa4", "\xea\xae\xa5", "\xea\xae\xa6", "\xea\xae\xa7",
  "\xea\xae\xa8", "\xea\xae\xa9", "\xea\xae\xaa", "\xea\xae\xab", "\xea\xae\xac", "\xea\xae\xad", "\xea\xae\xae", "\xea\xae\xaf",
  "\xea\xae\xb0", "\xea\xae\xb1", "\xea\xae\xb2", "\xea\xae\xb3", "\xea\xae\xb4", "\xea\xae\xb5", "\xea\xae\xb6", "\xea\xae\xb7",
  "\xea\xae\xb8", "\xea\xae\xb9", "\xea\xae\xba", "\xea\xae\xbb", "\xea\xae\xbc", "\xea\xae\xbd", "\xea\xae\xbe", "\xea\xae\xbf",
  "\xe1\x8f\xb8", "\xe1\x8f\xb9", "\xe1\x8f\xba", "\xe1\x8f\xbb", "\xe1\x8f\xbc", "\xe1\x8f\xbd"
};

static const char *grn_nfkc170_decompose_table_e1b2[] = {
  "\xe1\x83\x90", "\xe1\x83\x91", "\xe1\x83\x92", "\xe1\x83\x93", "\xe1\x83\x94", "\xe1\x83\x95", "\xe1\x83\x96", "\xe1\x83\x97",
  "\xe1\x83\x98", "\xe1\x83\x99", "\xe1\x83\x9a", "\xe1\x83\x9b", "\xe1\x83\x9c", "\xe1\x83\x9d", "\xe1\x83\x9e", "\xe1\x83\x9f",
  "\xe1\x83\xa0", "\xe1\x83\xa1", "\xe1\x83\xa2", "\xe1\x83\xa3", "\xe1\x83\xa4", "\xe1\x83\xa5", "\xe1\x83\xa6", "\xe1\x83\xa7",
  "\xe1\x83\xa8", "\xe1\x83\xa9", "\xe1\x83\xaa", "\xe1\x83\xab", "\xe1\x83\xac", "\xe1\x83\xad", "\xe1\x83\xae", "\xe1\x83\xaf",
  "\xe1\x83\xb0", "\xe1\x83\xb1", "\xe1\x83\xb2", "\xe1\x83\xb3", "\xe1\x83\xb4", "\xe1\x83\xb5", "\xe1\x83\xb6", "\xe1\x83\xb7",
  "\xe1\x83\xb8", "\xe1\x83\xb9", "\xe1\x83\xba", NULL, NULL, "\xe1\x83\xbd", "\xe1\x83\xbe", "\xe1\x83\xbf"
};

static const char *grn_nfkc170_decompose_table_e1b4[] = {
  "\x61", "\xc3\xa6", "\x62", NULL, "\x64", "\x65", "\xc7\x9d", "\x67",
  "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", NULL,
  "\x6f", "\xc8\xa3", "\x70", "\x72"
};

static const char *grn_nfkc170_decompose_table_e1b5[] = {
  "\x74", "\x75", "\x77", "\x61", "\xc9\x90", "\xc9\x91", "\xe1\xb4\x82", "\x62",
  "\x64", "\x65", "\xc9\x99", "\xc9\x9b", "\xc9\x9c", "\x67", NULL, "\x6b",
  "\x6d", "\xc5\x8b", "\x6f", "\xc9\x94", "\xe1\xb4\x96", "\xe1\xb4\x97", "\x70", "\x74",
  "\x75", "\xe1\xb4\x9d", "\xc9\xaf", "\x76", "\xe1\xb4\xa5", "\xce\xb2", "\xce\xb3", "\xce\xb4",
  "\xcf\x86", "\xcf\x87", "\x69", "\x72", "\x75", "\x76", "\xce\xb2", "\xce\xb3",
  "\xcf\x81", "\xcf\x86", "\xcf\x87", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd0\xbd"
};

static const char *grn_nfkc170_decompose_table_e1b6[] = {
  "\xc9\x92", "\x63", "\xc9\x95", "\xc3\xb0", "\xc9\x9c", "\x66", "\xc9\x9f", "\xc9\xa1",
  "\xc9\xa5", "\xc9\xa8", "\xc9\xa9", "\xc9\xaa", "\xe1\xb5\xbb", "\xca\x9d", "\xc9\xad", "\xe1\xb6\x85",
  "\xca\x9f", "\xc9\xb1", "\xc9\xb0", "\xc9\xb2", "\xc9\xb3", "\xc9\xb4", "\xc9\xb5", "\xc9\xb8",
  "\xca\x82", "\xca\x83", "\xc6\xab", "\xca\x89", "\xca\x8a", "\xe1\xb4\x9c", "\xca\x8b", "\xca\x8c",
  "\x7a", "\xca\x90", "\xca\x91", "\xca\x92", "\xce\xb8"
};

static const char *grn_nfkc170_decompose_table_e1b8[] = {
  "\xe1\xb8\x81", NULL, "\xe1\xb8\x83", NULL, "\xe1\xb8\x85", NULL, "\xe1\xb8\x87", NULL,
  "\xe1\xb8\x89", NULL, "\xe1\xb8\x8b", NULL, "\xe1\xb8\x8d", NULL, "\xe1\xb8\x8f", NULL,
  "\xe1\xb8\x91", NULL, "\xe1\xb8\x93", NULL, "\xe1\xb8\x95", NULL, "\xe1\xb8\x97", NULL,
  "\xe1\xb8\x99", NULL, "\xe1\xb8\x9b", NULL, "\xe1\xb8\x9d", NULL, "\xe1\xb8\x9f", NULL,
  "\xe1\xb8\xa1", NULL, "\xe1\xb8\xa3", NULL, "\xe1\xb8\xa5", NULL, "\xe1\xb8\xa7", NULL,
  "\xe1\xb8\xa9", NULL, "\xe1\xb8\xab", NULL, "\xe1\xb8\xad", NULL, "\xe1\xb8\xaf", NULL,
  "\xe1\xb8\xb1", NULL, "\xe1\xb8\xb3", NULL, "\xe1\xb8\xb5", NULL, "\xe1\xb8\xb7", NULL,
  "\xe1\xb8\xb9", NULL, "\xe1\xb8\xbb", NULL, "\xe1\xb8\xbd", NULL, "\xe1\xb8\xbf"
};

static const char *grn_nfkc170_decompose_table_e1b9[] = {
  "\xe1\xb9\x81", NULL, "\xe1\xb9\x83", NULL, "\xe1\xb9\x85", NULL, "\xe1\xb9\x87", NULL,
  "\xe1\xb9\x89", NULL, "\xe1\xb9\x8b", NULL, "\xe1\xb9\x8d", NULL, "\xe1\xb9\x8f", NULL,
  "\xe1\xb9\x91", NULL, "\xe1\xb9\x93", NULL, "\xe1\xb9\x95", NULL, "\xe1\xb9\x97", NULL,
  "\xe1\xb9\x99", NULL, "\xe1\xb9\x9b", NULL, "\xe1\xb9\x9d", NULL, "\xe1\xb9\x9f", NULL,
  "\xe1\xb9\xa1", NULL, "\xe1\xb9\xa3", NULL, "\xe1\xb9\xa5", NULL, "\xe1\xb9\xa7", NULL,
  "\xe1\xb9\xa9", NULL, "\xe1\xb9\xab", NULL, "\xe1\xb9\xad", NULL, "\xe1\xb9\xaf", NULL,
  "\xe1\xb9\xb1", NULL, "\xe1\xb9\xb3", NULL, "\xe1\xb9\xb5", NULL, "\xe1\xb9\xb7", NULL,
  "\xe1\xb9\xb9", NULL, "\xe1\xb9\xbb", NULL, "\xe1\xb9\xbd", NULL, "\xe1\xb9\xbf"
};

static const char *grn_nfkc170_decompose_table_e1ba[] = {
  "\xe1\xba\x81", NULL, "\xe1\xba\x83", NULL, "\xe1\xba\x85", NULL, "\xe1\xba\x87", NULL,
  "\xe1\xba\x89", NULL, "\xe1\xba\x8b", NULL, "\xe1\xba\x8d", NULL, "\xe1\xba\x8f", NULL,
  "\xe1\xba\x91", NULL, "\xe1\xba\x93", NULL, "\xe1\xba\x95", NULL, NULL, NULL,
  NULL, NULL, "\x61\xca\xbe", "\xe1\xb9\xa1", NULL, NULL, "\xc3\x9f", NULL,
  "\xe1\xba\xa1", NULL, "\xe1\xba\xa3", NULL, "\xe1\xba\xa5", NULL, "\xe1\xba\xa7", NULL,
  "\xe1\xba\xa9", NULL, "\xe1\xba\xab", NULL, "\xe1\xba\xad", NULL, "\xe1\xba\xaf", NULL,
  "\xe1\xba\xb1", NULL, "\xe1\xba\xb3", NULL, "\xe1\xba\xb5", NULL, "\xe1\xba\xb7", NULL,
  "\xe1\xba\xb9", NULL, "\xe1\xba\xbb", NULL, "\xe1\xba\xbd", NULL, "\xe1\xba\xbf"
};

static const char *grn_nfkc170_decompose_table_e1bb[] = {
  "\xe1\xbb\x81", NULL, "\xe1\xbb\x83", NULL, "\xe1\xbb\x85", NULL, "\xe1\xbb\x87", NULL,
  "\xe1\xbb\x89", NULL, "\xe1\xbb\x8b", NULL, "\xe1\xbb\x8d", NULL, "\xe1\xbb\x8f", NULL,
  "\xe1\xbb\x91", NULL, "\xe1\xbb\x93", NULL, "\xe1\xbb\x95", NULL, "\xe1\xbb\x97", NULL,
  "\xe1\xbb\x99", NULL, "\xe1\xbb\x9b", NULL, "\xe1\xbb\x9d", NULL, "\xe1\xbb\x9f", NULL,
  "\xe1\xbb\xa1", NULL, "\xe1\xbb\xa3", NULL, "\xe1\xbb\xa5", NULL, "\xe1\xbb\xa7", NULL,
  "\xe1\xbb\xa9", NULL, "\xe1\xbb\xab", NULL, "\xe1\xbb\xad", NULL, "\xe1\xbb\xaf", NULL,
  "\xe1\xbb\xb1", NULL, "\xe1\xbb\xb3", NULL, "\xe1\xbb\xb5", NULL, "\xe1\xbb\xb7", NULL,
  "\xe1\xbb\xb9", NULL, "\xe1\xbb\xbb", NULL, "\xe1\xbb\xbd", NULL, "\xe1\xbb\xbf"
};

static const char *grn_nfkc170_decompose_table_e1bc[] = {
  "\xe1\xbc\x80", "\xe1\xbc\x81", "\xe1\xbc\x82", "\xe1\xbc\x83", "\xe1\xbc\x84", "\xe1\xbc\x85", "\xe1\xbc\x86", "\xe1\xbc\x87",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x90", "\xe1\xbc\x91", "\xe1\xbc\x92", "\xe1\xbc\x93", "\xe1\xbc\x94", "\xe1\xbc\x95", NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa0", "\xe1\xbc\xa1", "\xe1\xbc\xa2", "\xe1\xbc\xa3", "\xe1\xbc\xa4", "\xe1\xbc\xa5", "\xe1\xbc\xa6", "\xe1\xbc\xa7",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb0", "\xe1\xbc\xb1", "\xe1\xbc\xb2", "\xe1\xbc\xb3", "\xe1\xbc\xb4", "\xe1\xbc\xb5", "\xe1\xbc\xb6", "\xe1\xbc\xb7"
};

static const char *grn_nfkc170_decompose_table_e1bd[] = {
  "\xe1\xbd\x80", "\xe1\xbd\x81", "\xe1\xbd\x82", "\xe1\xbd\x83", "\xe1\xbd\x84", "\xe1\xbd\x85", NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe1\xbd\x91", NULL, "\xe1\xbd\x93", NULL, "\xe1\xbd\x95", NULL, "\xe1\xbd\x97",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa0", "\xe1\xbd\xa1", "\xe1\xbd\xa2", "\xe1\xbd\xa3", "\xe1\xbd\xa4", "\xe1\xbd\xa5", "\xe1\xbd\xa6", "\xe1\xbd\xa7",
  NULL, "\xce\xac", NULL, "\xce\xad", NULL, "\xce\xae", NULL, "\xce\xaf",
  NULL, "\xcf\x8c", NULL, "\xcf\x8d", NULL, "\xcf\x8e"
};

static const char *grn_nfkc170_decompose_table_e1be[] = {
  "\xe1\xbe\x80", "\xe1\xbe\x81", "\xe1\xbe\x82", "\xe1\xbe\x83", "\xe1\xbe\x84", "\xe1\xbe\x85", "\xe1\xbe\x86", "\xe1\xbe\x87",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\x90", "\xe1\xbe\x91", "\xe1\xbe\x92", "\xe1\xbe\x93", "\xe1\xbe\x94", "\xe1\xbe\x95", "\xe1\xbe\x96", "\xe1\xbe\x97",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\xa0", "\xe1\xbe\xa1", "\xe1\xbe\xa2", "\xe1\xbe\xa3", "\xe1\xbe\xa4", "\xe1\xbe\xa5", "\xe1\xbe\xa6", "\xe1\xbe\xa7",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\xb0", "\xe1\xbe\xb1", "\xe1\xbd\xb0", "\xce\xac", "\xe1\xbe\xb3", "\xcc\x93", "\xce\xb9", "\xcc\x93"
};

static const char *grn_nfkc170_decompose_table_e1bf[] = {
  "\xcd\x82", "\xcc\x88\xcd\x82", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xb2", "\xce\xad", "\xe1\xbd\xb4", "\xce\xae", "\xe1\xbf\x83", "\xcc\x93\xcc\x80", "\xcc\x93\xcc\x81", "\xcc\x93\xcd\x82",
  NULL, NULL, NULL, "\xce\x90", NULL, NULL, NULL, NULL,
  "\xe1\xbf\x90", "\xe1\xbf\x91", "\xe1\xbd\xb6", "\xce\xaf", NULL, "\xcc\x94\xcc\x80", "\xcc\x94\xcc\x81", "\xcc\x94\xcd\x82",
  NULL, NULL, NULL, "\xce\xb0", NULL, NULL, NULL, NULL,
  "\xe1\xbf\xa0", "\xe1\xbf\xa1", "\xe1\xbd\xba", "\xcf\x8d", "\xe1\xbf\xa5", "\xcc\x88\xcc\x80", "\xcc\x88\xcc\x81", "\x60",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xb8", "\xcf\x8c", "\xe1\xbd\xbc", "\xcf\x8e", "\xe1\xbf\xb3", "\xcc\x81", "\xcc\x94"
};

static const char *grn_nfkc170_decompose_table_e280[] = {
  "\x20", "\x20", "\x20", "\x20", "\x20", "\x20", "\x20", "\x20",
  "\x20", "\x20", "\x20", NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe2\x80\x90", NULL, NULL, NULL, NULL, NULL, "\xcc\xb3",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\x2e", "\x2e\x2e", "\x2e\x2e\x2e", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\x20",
  NULL, NULL, NULL, "\xe2\x80\xb2\xe2\x80\xb2", "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2", NULL, "\xe2\x80\xb5\xe2\x80\xb5", "\xe2\x80\xb5\xe2\x80\xb5\xe2\x80\xb5",
  NULL, NULL, NULL, NULL, "\x21\x21", NULL, "\xcc\x85"
};

static const char *grn_nfkc170_decompose_table_e281[] = {
  "\x3f\x3f", "\x3f\x21", "\x21\x3f", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2\xe2\x80\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x20", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\x30", "\x69", NULL, NULL, "\x34", "\x35", "\x36",
  "\x37", "\x38", "\x39", "\x2b", "\xe2\x88\x92", "\x3d", "\x28", "\x29",
  "\x6e"
};

static const char *grn_nfkc170_decompose_table_e282[] = {
  "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37",
  "\x38", "\x39", "\x2b", "\xe2\x88\x92", "\x3d", "\x28", "\x29", NULL,
  "\x61", "\x65", "\x6f", "\x78", "\xc9\x99", "\x68", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x70", "\x73", "\x74", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x72\x73"
};

static const char *grn_nfkc170_decompose_table_e284[] = {
  "\x61\x2f\x63", "\x61\x2f\x73", "\x63", "\xc2\xb0\x63", NULL, "\x63\x2f\x6f", "\x63\x2f\x75", "\xc9\x9b",
  NULL, "\xc2\xb0\x66", "\x67", "\x68", "\x68", "\x68", "\x68", "\xc4\xa7",
  "\x69", "\x69", "\x6c", "\x6c", NULL, "\x6e", "\x6e\x6f", NULL,
  NULL, "\x70", "\x71", "\x72", "\x72", "\x72", NULL, NULL,
  "\x73\x6d", "\x74\x65\x6c", "\x74\x6d", NULL, "\x7a", NULL, "\xcf\x89", NULL,
  "\x7a", NULL, "\x6b", "\xc3\xa5", "\x62", "\x63", NULL, "\x65",
  "\x65", "\x66", "\xe2\x85\x8e", "\x6d", "\x6f", "\xd7\x90", "\xd7\x91", "\xd7\x92",
  "\xd7\x93", "\x69", NULL, "\x66\x61\x78", "\xcf\x80", "\xce\xb3", "\xce\xb3", "\xcf\x80"
};

static const char *grn_nfkc170_decompose_table_e285[] = {
  "\xe2\x88\x91", NULL, NULL, NULL, NULL, "\x64", "\x64", "\x65",
  "\x69", "\x6a", NULL, NULL, NULL, NULL, NULL, NULL,
  "\x31\xe2\x81\x84\x37", "\x31\xe2\x81\x84\x39", "\x31\xe2\x81\x84\x31\x30", "\x31\xe2\x81\x84\x33", "\x32\xe2\x81\x84\x33", "\x31\xe2\x81\x84\x35", "\x32\xe2\x81\x84\x35", "\x33\xe2\x81\x84\x35",
  "\x34\xe2\x81\x84\x35", "\x31\xe2\x81\x84\x36", "\x35\xe2\x81\x84\x36", "\x31\xe2\x81\x84\x38", "\x33\xe2\x81\x84\x38", "\x35\xe2\x81\x84\x38", "\x37\xe2\x81\x84\x38", "\x31\xe2\x81\x84",
  "\x69", "\x69\x69", "\x69\x69\x69", "\x69\x76", "\x76", "\x76\x69", "\x76\x69\x69", "\x76\x69\x69\x69",
  "\x69\x78", "\x78", "\x78\x69", "\x78\x69\x69", "\x6c", "\x63", "\x64", "\x6d",
  "\x69", "\x69\x69", "\x69\x69\x69", "\x69\x76", "\x76", "\x76\x69", "\x76\x69\x69", "\x76\x69\x69\x69",
  "\x69\x78", "\x78", "\x78\x69", "\x78\x69\x69", "\x6c", "\x63", "\x64", "\x6d"
};

static const char *grn_nfkc170_decompose_table_e286[] = {
  "\xe2\x86\x84", NULL, NULL, NULL, NULL, NULL, "\x30\xe2\x81\x84\x33"
};

static const char *grn_nfkc170_decompose_table_e288[] = {
  "\xe2\x88\xab\xe2\x88\xab", "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab", NULL, "\xe2\x88\xae\xe2\x88\xae", "\xe2\x88\xae\xe2\x88\xae\xe2\x88\xae"
};

static const char *grn_nfkc170_decompose_table_e28c[] = {
  "\xe3\x80\x88", "\xe3\x80\x89"
};

static const char *grn_nfkc170_decompose_table_e291[] = {
  "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38",
  "\x39", "\x31\x30", "\x31\x31", "\x31\x32", "\x31\x33", "\x31\x34", "\x31\x35", "\x31\x36",
  "\x31\x37", "\x31\x38", "\x31\x39", "\x32\x30", "\x28\x31\x29", "\x28\x32\x29", "\x28\x33\x29", "\x28\x34\x29",
  "\x28\x35\x29", "\x28\x36\x29", "\x28\x37\x29", "\x28\x38\x29", "\x28\x39\x29", "\x28\x31\x30\x29", "\x28\x31\x31\x29", "\x28\x31\x32\x29"
};

static const char *grn_nfkc170_decompose_table_e292[] = {
  "\x28\x31\x33\x29", "\x28\x31\x34\x29", "\x28\x31\x35\x29", "\x28\x31\x36\x29", "\x28\x31\x37\x29", "\x28\x31\x38\x29", "\x28\x31\x39\x29", "\x28\x32\x30\x29",
  "\x31\x2e", "\x32\x2e", "\x33\x2e", "\x34\x2e", "\x35\x2e", "\x36\x2e", "\x37\x2e", "\x38\x2e",
  "\x39\x2e", "\x31\x30\x2e", "\x31\x31\x2e", "\x31\x32\x2e", "\x31\x33\x2e", "\x31\x34\x2e", "\x31\x35\x2e", "\x31\x36\x2e",
  "\x31\x37\x2e", "\x31\x38\x2e", "\x31\x39\x2e", "\x32\x30\x2e", "\x28\x61\x29", "\x28\x62\x29", "\x28\x63\x29", "\x28\x64\x29",
  "\x28\x65\x29", "\x28\x66\x29", "\x28\x67\x29", "\x28\x68\x29", "\x28\x69\x29", "\x28\x6a\x29", "\x28\x6b\x29", "\x28\x6c\x29",
  "\x28\x6d\x29", "\x28\x6e\x29", "\x28\x6f\x29", "\x28\x70\x29", "\x28\x71\x29", "\x28\x72\x29", "\x28\x73\x29", "\x28\x74\x29",
  "\x28\x75\x29", "\x28\x76\x29", "\x28\x77\x29", "\x28\x78\x29", "\x28\x79\x29", "\x28\x7a\x29", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a"
};

static const char *grn_nfkc170_decompose_table_e293[] = {
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x30"
};

static const char *grn_nfkc170_decompose_table_e2a9[] = {
  "\x3a\x3a\x3d", "\x3d\x3d", "\x3d\x3d\x3d"
};

static const char *grn_nfkc170_decompose_table_e2b0[] = {
  "\xe2\xb0\xb0", "\xe2\xb0\xb1", "\xe2\xb0\xb2", "\xe2\xb0\xb3", "\xe2\xb0\xb4", "\xe2\xb0\xb5", "\xe2\xb0\xb6", "\xe2\xb0\xb7",
  "\xe2\xb0\xb8", "\xe2\xb0\xb9", "\xe2\xb0\xba", "\xe2\xb0\xbb", "\xe2\xb0\xbc", "\xe2\xb0\xbd", "\xe2\xb0\xbe", "\xe2\xb0\xbf",
  "\xe2\xb1\x80", "\xe2\xb1\x81", "\xe2\xb1\x82", "\xe2\xb1\x83", "\xe2\xb1\x84", "\xe2\xb1\x85", "\xe2\xb1\x86", "\xe2\xb1\x87",
  "\xe2\xb1\x88", "\xe2\xb1\x89", "\xe2\xb1\x8a", "\xe2\xb1\x8b", "\xe2\xb1\x8c", "\xe2\xb1\x8d", "\xe2\xb1\x8e", "\xe2\xb1\x8f",
  "\xe2\xb1\x90", "\xe2\xb1\x91", "\xe2\xb1\x92", "\xe2\xb1\x93", "\xe2\xb1\x94", "\xe2\xb1\x95", "\xe2\xb1\x96", "\xe2\xb1\x97",
  "\xe2\xb1\x98", "\xe2\xb1\x99", "\xe2\xb1\x9a", "\xe2\xb1\x9b", "\xe2\xb1\x9c", "\xe2\xb1\x9d", "\xe2\xb1\x9e", "\xe2\xb1\x9f"
};

static const char *grn_nfkc170_decompose_table_e2b1[] = {
  "\xe2\xb1\xa1", NULL, "\xc9\xab", "\xe1\xb5\xbd", "\xc9\xbd", NULL, NULL, "\xe2\xb1\xa8",
  NULL, "\xe2\xb1\xaa", NULL, "\xe2\xb1\xac", NULL, "\xc9\x91", "\xc9\xb1", "\xc9\x90",
  "\xc9\x92", NULL, "\xe2\xb1\xb3", NULL, NULL, "\xe2\xb1\xb6", NULL, NULL,
  NULL, NULL, NULL, NULL, "\x6a", "\x76", "\xc8\xbf", "\xc9\x80"
};

static const char *grn_nfkc170_decompose_table_e2b2[] = {
  "\xe2\xb2\x81", NULL, "\xe2\xb2\x83", NULL, "\xe2\xb2\x85", NULL, "\xe2\xb2\x87", NULL,
  "\xe2\xb2\x89", NULL, "\xe2\xb2\x8b", NULL, "\xe2\xb2\x8d", NULL, "\xe2\xb2\x8f", NULL,
  "\xe2\xb2\x91", NULL, "\xe2\xb2\x93", NULL, "\xe2\xb2\x95", NULL, "\xe2\xb2\x97", NULL,
  "\xe2\xb2\x99", NULL, "\xe2\xb2\x9b", NULL, "\xe2\xb2\x9d", NULL, "\xe2\xb2\x9f", NULL,
  "\xe2\xb2\xa1", NULL, "\xe2\xb2\xa3", NULL, "\xe2\xb2\xa5", NULL, "\xe2\xb2\xa7", NULL,
  "\xe2\xb2\xa9", NULL, "\xe2\xb2\xab", NULL, "\xe2\xb2\xad", NULL, "\xe2\xb2\xaf", NULL,
  "\xe2\xb2\xb1", NULL, "\xe2\xb2\xb3", NULL, "\xe2\xb2\xb5", NULL, "\xe2\xb2\xb7", NULL,
  "\xe2\xb2\xb9", NULL, "\xe2\xb2\xbb", NULL, "\xe2\xb2\xbd", NULL, "\xe2\xb2\xbf"
};

static const char *grn_nfkc170_decompose_table_e2b3[] = {
  "\xe2\xb3\x81", NULL, "\xe2\xb3\x83", NULL, "\xe2\xb3\x85", NULL, "\xe2\xb3\x87", NULL,
  "\xe2\xb3\x89", NULL, "\xe2\xb3\x8b", NULL, "\xe2\xb3\x8d", NULL, "\xe2\xb3\x8f", NULL,
  "\xe2\xb3\x91", NULL, "\xe2\xb3\x93", NULL, "\xe2\xb3\x95", NULL, "\xe2\xb3\x97", NULL,
  "\xe2\xb3\x99", NULL, "\xe2\xb3\x9b", NULL, "\xe2\xb3\x9d", NULL, "\xe2\xb3\x9f", NULL,
  "\xe2\xb3\xa1", NULL, "\xe2\xb3\xa3", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xe2\xb3\xac", NULL, "\xe2\xb3\xae", NULL, NULL,
  NULL, NULL, "\xe2\xb3\xb3"
};

static const char *grn_nfkc170_decompose_table_e2bc[] = {
  "\xe4\xb8\x80", "\xe4\xb8\xa8", "\xe4\xb8\xb6", "\xe4\xb8\xbf", "\xe4\xb9\x99", "\xe4\xba\x85", "\xe4\xba\x8c", "\xe4\xba\xa0",
  "\xe4\xba\xba", "\xe5\x84\xbf", "\xe5\x85\xa5", "\xe5\x85\xab", "\xe5\x86\x82", "\xe5\x86\x96", "\xe5\x86\xab", "\xe5\x87\xa0",
  "\xe5\x87\xb5", "\xe5\x88\x80", "\xe5\x8a\x9b", "\xe5\x8b\xb9", "\xe5\x8c\x95", "\xe5\x8c\x9a", "\xe5\x8c\xb8", "\xe5\x8d\x81",
  "\xe5\x8d\x9c", "\xe5\x8d\xa9", "\xe5\x8e\x82", "\xe5\x8e\xb6", "\xe5\x8f\x88", "\xe5\x8f\xa3", "\xe5\x9b\x97", "\xe5\x9c\x9f",
  "\xe5\xa3\xab", "\xe5\xa4\x82", "\xe5\xa4\x8a", "\xe5\xa4\x95", "\xe5\xa4\xa7", "\xe5\xa5\xb3", "\xe5\xad\x90", "\xe5\xae\x80",
  "\xe5\xaf\xb8", "\xe5\xb0\x8f", "\xe5\xb0\xa2", "\xe5\xb0\xb8", "\xe5\xb1\xae", "\xe5\xb1\xb1", "\xe5\xb7\x9b", "\xe5\xb7\xa5",
  "\xe5\xb7\xb1", "\xe5\xb7\xbe", "\xe5\xb9\xb2", "\xe5\xb9\xba", "\xe5\xb9\xbf", "\xe5\xbb\xb4", "\xe5\xbb\xbe", "\xe5\xbc\x8b",
  "\xe5\xbc\x93", "\xe5\xbd\x90", "\xe5\xbd\xa1", "\xe5\xbd\xb3", "\xe5\xbf\x83", "\xe6\x88\x88", "\xe6\x88\xb6", "\xe6\x89\x8b"
};

static const char *grn_nfkc170_decompose_table_e2bd[] = {
  "\xe6\x94\xaf", "\xe6\x94\xb4", "\xe6\x96\x87", "\xe6\x96\x97", "\xe6\x96\xa4", "\xe6\x96\xb9", "\xe6\x97\xa0", "\xe6\x97\xa5",
  "\xe6\x9b\xb0", "\xe6\x9c\x88", "\xe6\x9c\xa8", "\xe6\xac\xa0", "\xe6\xad\xa2", "\xe6\xad\xb9", "\xe6\xae\xb3", "\xe6\xaf\x8b",
  "\xe6\xaf\x94", "\xe6\xaf\x9b", "\xe6\xb0\x8f", "\xe6\xb0\x94", "\xe6\xb0\xb4", "\xe7\x81\xab", "\xe7\x88\xaa", "\xe7\x88\xb6",
  "\xe7\x88\xbb", "\xe7\x88\xbf", "\xe7\x89\x87", "\xe7\x89\x99", "\xe7\x89\x9b", "\xe7\x8a\xac", "\xe7\x8e\x84", "\xe7\x8e\x89",
  "\xe7\x93\x9c", "\xe7\x93\xa6", "\xe7\x94\x98", "\xe7\x94\x9f", "\xe7\x94\xa8", "\xe7\x94\xb0", "\xe7\x96\x8b", "\xe7\x96\x92",
  "\xe7\x99\xb6", "\xe7\x99\xbd", "\xe7\x9a\xae", "\xe7\x9a\xbf", "\xe7\x9b\xae", "\xe7\x9f\x9b", "\xe7\x9f\xa2", "\xe7\x9f\xb3",
  "\xe7\xa4\xba", "\xe7\xa6\xb8", "\xe7\xa6\xbe", "\xe7\xa9\xb4", "\xe7\xab\x8b", "\xe7\xab\xb9", "\xe7\xb1\xb3", "\xe7\xb3\xb8",
  "\xe7\xbc\xb6", "\xe7\xbd\x91", "\xe7\xbe\x8a", "\xe7\xbe\xbd", "\xe8\x80\x81", "\xe8\x80\x8c", "\xe8\x80\x92", "\xe8\x80\xb3"
};

static const char *grn_nfkc170_decompose_table_e2be[] = {
  "\xe8\x81\xbf", "\xe8\x82\x89", "\xe8\x87\xa3", "\xe8\x87\xaa", "\xe8\x87\xb3", "\xe8\x87\xbc", "\xe8\x88\x8c", "\xe8\x88\x9b",
  "\xe8\x88\x9f", "\xe8\x89\xae", "\xe8\x89\xb2", "\xe8\x89\xb8", "\xe8\x99\x8d", "\xe8\x99\xab", "\xe8\xa1\x80", "\xe8\xa1\x8c",
  "\xe8\xa1\xa3", "\xe8\xa5\xbe", "\xe8\xa6\x8b", "\xe8\xa7\x92", "\xe8\xa8\x80", "\xe8\xb0\xb7", "\xe8\xb1\x86", "\xe8\xb1\x95",
  "\xe8\xb1\xb8", "\xe8\xb2\x9d", "\xe8\xb5\xa4", "\xe8\xb5\xb0", "\xe8\xb6\xb3", "\xe8\xba\xab", "\xe8\xbb\x8a", "\xe8\xbe\x9b",
  "\xe8\xbe\xb0", "\xe8\xbe\xb5", "\xe9\x82\x91", "\xe9\x85\x89", "\xe9\x87\x86", "\xe9\x87\x8c", "\xe9\x87\x91", "\xe9\x95\xb7",
  "\xe9\x96\x80", "\xe9\x98\x9c", "\xe9\x9a\xb6", "\xe9\x9a\xb9", "\xe9\x9b\xa8", "\xe9\x9d\x91", "\xe9\x9d\x9e", "\xe9\x9d\xa2",
  "\xe9\x9d\xa9", "\xe9\x9f\x8b", "\xe9\x9f\xad", "\xe9\x9f\xb3", "\xe9\xa0\x81", "\xe9\xa2\xa8", "\xe9\xa3\x9b", "\xe9\xa3\x9f",
  "\xe9\xa6\x96", "\xe9\xa6\x99", "\xe9\xa6\xac", "\xe9\xaa\xa8", "\xe9\xab\x98", "\xe9\xab\x9f", "\xe9\xac\xa5", "\xe9\xac\xaf"
};

static const char *grn_nfkc170_decompose_table_e2bf[] = {
  "\xe9\xac\xb2", "\xe9\xac\xbc", "\xe9\xad\x9a", "\xe9\xb3\xa5", "\xe9\xb9\xb5", "\xe9\xb9\xbf", "\xe9\xba\xa5", "\xe9\xba\xbb",
  "\xe9\xbb\x83", "\xe9\xbb\x8d", "\xe9\xbb\x91", "\xe9\xbb\xb9", "\xe9\xbb\xbd", "\xe9\xbc\x8e", "\xe9\xbc\x93", "\xe9\xbc\xa0",
  "\xe9\xbc\xbb", "\xe9\xbd\x8a", "\xe9\xbd\x92", "\xe9\xbe\x8d", "\xe9\xbe\x9c", "\xe9\xbe\xa0"
};

static const char *grn_nfkc170_decompose_table_e380[] = {
  "\x20", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe3\x80\x92", NULL,
  "\xe5\x8d\x81", "\xe5\x8d\x84", "\xe5\x8d\x85"
};

static const char *grn_nfkc170_decompose_table_e382[] = {
  "\xe3\x82\x99", "\xe3\x82\x9a", NULL, NULL, "\xe3\x82\x88\xe3\x82\x8a"
};

static const char *grn_nfkc170_decompose_table_e384[] = {
  "\xe1\x84\x80", "\xe1\x84\x81", "\xe1\x86\xaa", "\xe1\x84\x82", "\xe1\x86\xac", "\xe1\x86\xad", "\xe1\x84\x83", "\xe1\x84\x84",
  "\xe1\x84\x85", "\xe1\x86\xb0", "\xe1\x86\xb1", "\xe1\x86\xb2", "\xe1\x86\xb3", "\xe1\x86\xb4", "\xe1\x86\xb5"
};

static const char *grn_nfkc170_decompose_table_e385[] = {
  "\xe1\x84\x9a", "\xe1\x84\x86", "\xe1\x84\x87", "\xe1\x84\x88", "\xe1\x84\xa1", "\xe1\x84\x89", "\xe1\x84\x8a", "\xe1\x84\x8b",
  "\xe1\x84\x8c", "\xe1\x84\x8d", "\xe1\x84\x8e", "\xe1\x84\x8f", "\xe1\x84\x90", "\xe1\x84\x91", "\xe1\x84\x92", "\xe1\x85\xa1",
  "\xe1\x85\xa2", "\xe1\x85\xa3", "\xe1\x85\xa4", "\xe1\x85\xa5", "\xe1\x85\xa6", "\xe1\x85\xa7", "\xe1\x85\xa8", "\xe1\x85\xa9",
  "\xe1\x85\xaa", "\xe1\x85\xab", "\xe1\x85\xac", "\xe1\x85\xad", "\xe1\x85\xae", "\xe1\x85\xaf", "\xe1\x85\xb0", "\xe1\x85\xb1",
  "\xe1\x85\xb2", "\xe1\x85\xb3", "\xe1\x85\xb4", "\xe1\x85\xb5", "\xe1\x85\xa0", "\xe1\x84\x94", "\xe1\x84\x95", "\xe1\x87\x87",
  "\xe1\x87\x88", "\xe1\x87\x8c", "\xe1\x87\x8e", "\xe1\x87\x93", "\xe1\x87\x97", "\xe1\x87\x99", "\xe1\x84\x9c", "\xe1\x87\x9d",
  "\xe1\x87\x9f", "\xe1\x84\x9d", "\xe1\x84\x9e", "\xe1\x84\xa0", "\xe1\x84\xa2", "\xe1\x84\xa3", "\xe1\x84\xa7", "\xe1\x84\xa9",
  "\xe1\x84\xab", "\xe1\x84\xac", "\xe1\x84\xad", "\xe1\x84\xae", "\xe1\x84\xaf", "\xe1\x84\xb2", "\xe1\x84\xb6", "\xe1\x85\x80"
};

static const char *grn_nfkc170_decompose_table_e386[] = {
  "\xe1\x85\x87", "\xe1\x85\x8c", "\xe1\x87\xb1", "\xe1\x87\xb2", "\xe1\x85\x97", "\xe1\x85\x98", "\xe1\x85\x99", "\xe1\x86\x84",
  "\xe1\x86\x85", "\xe1\x86\x88", "\xe1\x86\x91", "\xe1\x86\x92", "\xe1\x86\x94", "\xe1\x86\x9e", "\xe1\x86\xa1", NULL,
  NULL, NULL, "\xe4\xb8\x80", "\xe4\xba\x8c", "\xe4\xb8\x89", "\xe5\x9b\x9b", "\xe4\xb8\x8a", "\xe4\xb8\xad",
  "\xe4\xb8\x8b", "\xe7\x94\xb2", "\xe4\xb9\x99", "\xe4\xb8\x99", "\xe4\xb8\x81", "\xe5\xa4\xa9", "\xe5\x9c\xb0", "\xe4\xba\xba"
};

static const char *grn_nfkc170_decompose_table_e388[] = {
  "\x28\xe1\x84\x80\x29", "\x28\xe1\x84\x82\x29", "\x28\xe1\x84\x83\x29", "\x28\xe1\x84\x85\x29", "\x28\xe1\x84\x86\x29", "\x28\xe1\x84\x87\x29", "\x28\xe1\x84\x89\x29", "\x28\xe1\x84\x8b\x29",
  "\x28\xe1\x84\x8c\x29", "\x28\xe1\x84\x8e\x29", "\x28\xe1\x84\x8f\x29", "\x28\xe1\x84\x90\x29", "\x28\xe1\x84\x91\x29", "\x28\xe1\x84\x92\x29", "\x28\xea\xb0\x80\x29", "\x28\xeb\x82\x98\x29",
  "\x28\xeb\x8b\xa4\x29", "\x28\xeb\x9d\xbc\x29", "\x28\xeb\xa7\x88\x29", "\x28\xeb\xb0\x94\x29", "\x28\xec\x82\xac\x29", "\x28\xec\x95\x84\x29", "\x28\xec\x9e\x90\x29", "\x28\xec\xb0\xa8\x29",
  "\x28\xec\xb9\xb4\x29", "\x28\xed\x83\x80\x29", "\x28\xed\x8c\x8c\x29", "\x28\xed\x95\x98\x29", "\x28\xec\xa3\xbc\x29", "\x28\xec\x98\xa4\xec\xa0\x84\x29", "\x28\xec\x98\xa4\xed\x9b\x84\x29", NULL,
  "\x28\xe4\xb8\x80\x29", "\x28\xe4\xba\x8c\x29", "\x28\xe4\xb8\x89\x29", "\x28\xe5\x9b\x9b\x29", "\x28\xe4\xba\x94\x29", "\x28\xe5\x85\xad\x29", "\x28\xe4\xb8\x83\x29", "\x28\xe5\x85\xab\x29",
  "\x28\xe4\xb9\x9d\x29", "\x28\xe5\x8d\x81\x29", "\x28\xe6\x9c\x88\x29", "\x28\xe7\x81\xab\x29", "\x28\xe6\xb0\xb4\x29", "\x28\xe6\x9c\xa8\x29", "\x28\xe9\x87\x91\x29", "\x28\xe5\x9c\x9f\x29",
  "\x28\xe6\x97\xa5\x29", "\x28\xe6\xa0\xaa\x29", "\x28\xe6\x9c\x89\x29", "\x28\xe7\xa4\xbe\x29", "\x28\xe5\x90\x8d\x29", "\x28\xe7\x89\xb9\x29", "\x28\xe8\xb2\xa1\x29", "\x28\xe7\xa5\x9d\x29",
  "\x28\xe5\x8a\xb4\x29", "\x28\xe4\xbb\xa3\x29", "\x28\xe5\x91\xbc\x29", "\x28\xe5\xad\xa6\x29", "\x28\xe7\x9b\xa3\x29", "\x28\xe4\xbc\x81\x29", "\x28\xe8\xb3\x87\x29", "\x28\xe5\x8d\x94\x29"
};

static const char *grn_nfkc170_decompose_table_e389[] = {
  "\x28\xe7\xa5\xad\x29", "\x28\xe4\xbc\x91\x29", "\x28\xe8\x87\xaa\x29", "\x28\xe8\x87\xb3\x29", "\xe5\x95\x8f", "\xe5\xb9\xbc", "\xe6\x96\x87", "\xe7\xae\x8f",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x70\x74\x65", "\x32\x31", "\x32\x32", "\x32\x33", "\x32\x34", "\x32\x35", "\x32\x36", "\x32\x37",
  "\x32\x38", "\x32\x39", "\x33\x30", "\x33\x31", "\x33\x32", "\x33\x33", "\x33\x34", "\x33\x35",
  "\xe1\x84\x80", "\xe1\x84\x82", "\xe1\x84\x83", "\xe1\x84\x85", "\xe1\x84\x86", "\xe1\x84\x87", "\xe1\x84\x89", "\xe1\x84\x8b",
  "\xe1\x84\x8c", "\xe1\x84\x8e", "\xe1\x84\x8f", "\xe1\x84\x90", "\xe1\x84\x91", "\xe1\x84\x92", "\xea\xb0\x80", "\xeb\x82\x98",
  "\xeb\x8b\xa4", "\xeb\x9d\xbc", "\xeb\xa7\x88", "\xeb\xb0\x94", "\xec\x82\xac", "\xec\x95\x84", "\xec\x9e\x90", "\xec\xb0\xa8",
  "\xec\xb9\xb4", "\xed\x83\x80", "\xed\x8c\x8c", "\xed\x95\x98", "\xec\xb0\xb8\xea\xb3\xa0", "\xec\xa3\xbc\xec\x9d\x98", "\xec\x9a\xb0"
};

static const char *grn_nfkc170_decompose_table_e38a[] = {
  "\xe4\xb8\x80", "\xe4\xba\x8c", "\xe4\xb8\x89", "\xe5\x9b\x9b", "\xe4\xba\x94", "\xe5\x85\xad", "\xe4\xb8\x83", "\xe5\x85\xab",
  "\xe4\xb9\x9d", "\xe5\x8d\x81", "\xe6\x9c\x88", "\xe7\x81\xab", "\xe6\xb0\xb4", "\xe6\x9c\xa8", "\xe9\x87\x91", "\xe5\x9c\x9f",
  "\xe6\x97\xa5", "\xe6\xa0\xaa", "\xe6\x9c\x89", "\xe7\xa4\xbe", "\xe5\x90\x8d", "\xe7\x89\xb9", "\xe8\xb2\xa1", "\xe7\xa5\x9d",
  "\xe5\x8a\xb4", "\xe7\xa7\x98", "\xe7\x94\xb7", "\xe5\xa5\xb3", "\xe9\x81\xa9", "\xe5\x84\xaa", "\xe5\x8d\xb0", "\xe6\xb3\xa8",
  "\xe9\xa0\x85", "\xe4\xbc\x91", "\xe5\x86\x99", "\xe6\xad\xa3", "\xe4\xb8\x8a", "\xe4\xb8\xad", "\xe4\xb8\x8b", "\xe5\xb7\xa6",
  "\xe5\x8f\xb3", "\xe5\x8c\xbb", "\xe5\xae\x97", "\xe5\xad\xa6", "\xe7\x9b\xa3", "\xe4\xbc\x81", "\xe8\xb3\x87", "\xe5\x8d\x94",
  "\xe5\xa4\x9c", "\x33\x36", "\x33\x37", "\x33\x38", "\x33\x39", "\x34\x30", "\x34\x31", "\x34\x32",
  "\x34\x33", "\x34\x34", "\x34\x35", "\x34\x36", "\x34\x37", "\x34\x38", "\x34\x39", "\x35\x30"
};

static const char *grn_nfkc170_decompose_table_e38b[] = {
  "\x31\xe6\x9c\x88", "\x32\xe6\x9c\x88", "\x33\xe6\x9c\x88", "\x34\xe6\x9c\x88", "\x35\xe6\x9c\x88", "\x36\xe6\x9c\x88", "\x37\xe6\x9c\x88", "\x38\xe6\x9c\x88",
  "\x39\xe6\x9c\x88", "\x31\x30\xe6\x9c\x88", "\x31\x31\xe6\x9c\x88", "\x31\x32\xe6\x9c\x88", "\x68\x67", "\x65\x72\x67", "\x65\x76", "\x6c\x74\x64",
  "\xe3\x82\xa2", "\xe3\x82\xa4", "\xe3\x82\xa6", "\xe3\x82\xa8", "\xe3\x82\xaa", "\xe3\x82\xab", "\xe3\x82\xad", "\xe3\x82\xaf",
  "\xe3\x82\xb1", "\xe3\x82\xb3", "\xe3\x82\xb5", "\xe3\x82\xb7", "\xe3\x82\xb9", "\xe3\x82\xbb", "\xe3\x82\xbd", "\xe3\x82\xbf",
  "\xe3\x83\x81", "\xe3\x83\x84", "\xe3\x83\x86", "\xe3\x83\x88", "\xe3\x83\x8a", "\xe3\x83\x8b", "\xe3\x83\x8c", "\xe3\x83\x8d",
  "\xe3\x83\x8e", "\xe3\x83\x8f", "\xe3\x83\x92", "\xe3\x83\x95", "\xe3\x83\x98", "\xe3\x83\x9b", "\xe3\x83\x9e", "\xe3\x83\x9f",
  "\xe3\x83\xa0", "\xe3\x83\xa1", "\xe3\x83\xa2", "\xe3\x83\xa4", "\xe3\x83\xa6", "\xe3\x83\xa8", "\xe3\x83\xa9", "\xe3\x83\xaa",
  "\xe3\x83\xab", "\xe3\x83\xac", "\xe3\x83\xad", "\xe3\x83\xaf", "\xe3\x83\xb0", "\xe3\x83\xb1", "\xe3\x83\xb2", "\xe4\xbb\xa4\xe5\x92\x8c"
};

static const char *grn_nfkc170_decompose_table_e38c[] = {
  "\xe3\x82\xa2\xe3\x83\x91\xe3\x83\xbc\xe3\x83\x88", "\xe3\x82\xa2\xe3\x83\xab\xe3\x83\x95\xe3\x82\xa1", "\xe3\x82\xa2\xe3\x83\xb3\xe3\x83\x9a\xe3\x82\xa2", "\xe3\x82\xa2\xe3\x83\xbc\xe3\x83\xab", "\xe3\x82\xa4\xe3\x83\x8b\xe3\x83\xb3\xe3\x82\xb0", "\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x81", "\xe3\x82\xa6\xe3\x82\xa9\xe3\x83\xb3", "\xe3\x82\xa8\xe3\x82\xb9\xe3\x82\xaf\xe3\x83\xbc\xe3\x83\x89",
  "\xe3\x82\xa8\xe3\x83\xbc\xe3\x82\xab\xe3\x83\xbc", "\xe3\x82\xaa\xe3\x83\xb3\xe3\x82\xb9", "\xe3\x82\xaa\xe3\x83\xbc\xe3\x83\xa0", "\xe3\x82\xab\xe3\x82\xa4\xe3\x83\xaa", "\xe3\x82\xab\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x88", "\xe3\x82\xab\xe3\x83\xad\xe3\x83\xaa\xe3\x83\xbc", "\xe3\x82\xac\xe3\x83\xad\xe3\x83\xb3", "\xe3\x82\xac\xe3\x83\xb3\xe3\x83\x9e",
  "\xe3\x82\xae\xe3\x82\xac", "\xe3\x82\xae\xe3\x83\x8b\xe3\x83\xbc", "\xe3\x82\xad\xe3\x83\xa5\xe3\x83\xaa\xe3\x83\xbc", "\xe3\x82\xae\xe3\x83\xab\xe3\x83\x80\xe3\x83\xbc", "\xe3\x82\xad\xe3\x83\xad", "\xe3\x82\xad\xe3\x83\xad\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0", "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab", "\xe3\x82\xad\xe3\x83\xad\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88",
  "\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0", "\xe3\x82\xb0\xe3\x83\xa9\xe3\x83\xa0\xe3\x83\x88\xe3\x83\xb3", "\xe3\x82\xaf\xe3\x83\xab\xe3\x82\xbc\xe3\x82\xa4\xe3\x83\xad", "\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xbc\xe3\x83\x8d", "\xe3\x82\xb1\xe3\x83\xbc\xe3\x82\xb9", "\xe3\x82\xb3\xe3\x83\xab\xe3\x83\x8a", "\xe3\x82\xb3\xe3\x83\xbc\xe3\x83\x9d", "\xe3\x82\xb5\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xab",
  "\xe3\x82\xb5\xe3\x83\xb3\xe3\x83\x81\xe3\x83\xbc\xe3\x83\xa0", "\xe3\x82\xb7\xe3\x83\xaa\xe3\x83\xb3\xe3\x82\xb0", "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x81", "\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88", "\xe3\x83\x80\xe3\x83\xbc\xe3\x82\xb9", "\xe3\x83\x87\xe3\x82\xb7", "\xe3\x83\x89\xe3\x83\xab", "\xe3\x83\x88\xe3\x83\xb3",
  "\xe3\x83\x8a\xe3\x83\x8e", "\xe3\x83\x8e\xe3\x83\x83\xe3\x83\x88", "\xe3\x83\x8f\xe3\x82\xa4\xe3\x83\x84", "\xe3\x83\x91\xe3\x83\xbc\xe3\x82\xbb\xe3\x83\xb3\xe3\x83\x88", "\xe3\x83\x91\xe3\x83\xbc\xe3\x83\x84", "\xe3\x83\x90\xe3\x83\xbc\xe3\x83\xac\xe3\x83\xab", "\xe3\x83\x94\xe3\x82\xa2\xe3\x82\xb9\xe3\x83\x88\xe3\x83\xab", "\xe3\x83\x94\xe3\x82\xaf\xe3\x83\xab",
  "\xe3\x83\x94\xe3\x82\xb3", "\xe3\x83\x93\xe3\x83\xab", "\xe3\x83\x95\xe3\x82\xa1\xe3\x83\xa9\xe3\x83\x83\xe3\x83\x89", "\xe3\x83\x95\xe3\x82\xa3\xe3\x83\xbc\xe3\x83\x88", "\xe3\x83\x96\xe3\x83\x83\xe3\x82\xb7\xe3\x82\xa7\xe3\x83\xab", "\xe3\x83\x95\xe3\x83\xa9\xe3\x83\xb3", "\xe3\x83\x98\xe3\x82\xaf\xe3\x82\xbf\xe3\x83\xbc\xe3\x83\xab", "\xe3\x83\x9a\xe3\x82\xbd",
  "\xe3\x83\x9a\xe3\x83\x8b\xe3\x83\x92", "\xe3\x83\x98\xe3\x83\xab\xe3\x83\x84", "\xe3\x83\x9a\xe3\x83\xb3\xe3\x82\xb9", "\xe3\x83\x9a\xe3\x83\xbc\xe3\x82\xb8", "\xe3\x83\x99\xe3\x83\xbc\xe3\x82\xbf", "\xe3\x83\x9d\xe3\x82\xa4\xe3\x83\xb3\xe3\x83\x88", "\xe3\x83\x9c\xe3\x83\xab\xe3\x83\x88", "\xe3\x83\x9b\xe3\x83\xb3"
};

static const char *grn_nfkc170_decompose_table_e38d[] = {
  "\xe3\x83\x9d\xe3\x83\xb3\xe3\x83\x89", "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xab", "\xe3\x83\x9b\xe3\x83\xbc\xe3\x83\xb3", "\xe3\x83\x9e\xe3\x82\xa4\xe3\x82\xaf\xe3\x83\xad", "\xe3\x83\x9e\xe3\x82\xa4\xe3\x83\xab", "\xe3\x83\x9e\xe3\x83\x83\xe3\x83\x8f", "\xe3\x83\x9e\xe3\x83\xab\xe3\x82\xaf", "\xe3\x83\x9e\xe3\x83\xb3\xe3\x82\xb7\xe3\x83\xa7\xe3\x83\xb3",
  "\xe3\x83\x9f\xe3\x82\xaf\xe3\x83\xad\xe3\x83\xb3", "\xe3\x83\x9f\xe3\x83\xaa", "\xe3\x83\x9f\xe3\x83\xaa\xe3\x83\x90\xe3\x83\xbc\xe3\x83\xab", "\xe3\x83\xa1\xe3\x82\xac", "\xe3\x83\xa1\xe3\x82\xac\xe3\x83\x88\xe3\x83\xb3", "\xe3\x83\xa1\xe3\x83\xbc\xe3\x83\x88\xe3\x83\xab", "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\x89", "\xe3\x83\xa4\xe3\x83\xbc\xe3\x83\xab",
  "\xe3\x83\xa6\xe3\x82\xa2\xe3\x83\xb3", "\xe3\x83\xaa\xe3\x83\x83\xe3\x83\x88\xe3\x83\xab", "\xe3\x83\xaa\xe3\x83\xa9", "\xe3\x83\xab\xe3\x83\x94\xe3\x83\xbc", "\xe3\x83\xab\xe3\x83\xbc\xe3\x83\x96\xe3\x83\xab", "\xe3\x83\xac\xe3\x83\xa0", "\xe3\x83\xac\xe3\x83\xb3\xe3\x83\x88\xe3\x82\xb2\xe3\x83\xb3", "\xe3\x83\xaf\xe3\x83\x83\xe3\x83\x88",
  "\x30\xe7\x82\xb9", "\x31\xe7\x82\xb9", "\x32\xe7\x82\xb9", "\x33\xe7\x82\xb9", "\x34\xe7\x82\xb9", "\x35\xe7\x82\xb9", "\x36\xe7\x82\xb9", "\x37\xe7\x82\xb9",
  "\x38\xe7\x82\xb9", "\x39\xe7\x82\xb9", "\x31\x30\xe7\x82\xb9", "\x31\x31\xe7\x82\xb9", "\x31\x32\xe7\x82\xb9", "\x31\x33\xe7\x82\xb9", "\x31\x34\xe7\x82\xb9", "\x31\x35\xe7\x82\xb9",
  "\x31\x36\xe7\x82\xb9", "\x31\x37\xe7\x82\xb9", "\x31\x38\xe7\x82\xb9", "\x31\x39\xe7\x82\xb9", "\x32\x30\xe7\x82\xb9", "\x32\x31\xe7\x82\xb9", "\x32\x32\xe7\x82\xb9", "\x32\x33\xe7\x82\xb9",
  "\x32\x34\xe7\x82\xb9", "\x68\x70\x61", "\x64\x61", "\x61\x75", "\x62\x61\x72", "\x6f\x76", "\x70\x63", "\x64\x6d",
  "\x64\x6d\x32", "\x64\x6d\x33", "\x69\x75", "\xe5\xb9\xb3\xe6\x88\x90", "\xe6\x98\xad\xe5\x92\x8c", "\xe5\xa4\xa7\xe6\xad\xa3", "\xe6\x98\x8e\xe6\xb2\xbb", "\xe6\xa0\xaa\xe5\xbc\x8f\xe4\xbc\x9a\xe7\xa4\xbe"
};

static const char *grn_nfkc170_decompose_table_e38e[] = {
  "\x70\x61", "\x6e\x61", "\xce\xbc\x61", "\x6d\x61", "\x6b\x61", "\x6b\x62", "\x6d\x62", "\x67\x62",
  "\x63\x61\x6c", "\x6b\x63\x61\x6c", "\x70\x66", "\x6e\x66", "\xce\xbc\x66", "\xce\xbc\x67", "\x6d\x67", "\x6b\x67",
  "\x68\x7a", "\x6b\x68\x7a", "\x6d\x68\x7a", "\x67\x68\x7a", "\x74\x68\x7a", "\xce\xbc\x6c", "\x6d\x6c", "\x64\x6c",
  "\x6b\x6c", "\x66\x6d", "\x6e\x6d", "\xce\xbc\x6d", "\x6d\x6d", "\x63\x6d", "\x6b\x6d", "\x6d\x6d\x32",
  "\x63\x6d\x32", "\x6d\x32", "\x6b\x6d\x32", "\x6d\x6d\x33", "\x63\x6d\x33", "\x6d\x33", "\x6b\x6d\x33", "\x6d\xe2\x88\x95\x73",
  "\x6d\xe2\x88\x95\x73\x32", "\x70\x61", "\x6b\x70\x61", "\x6d\x70\x61", "\x67\x70\x61", "\x72\x61\x64", "\x72\x61\x64\xe2\x88\x95\x73", "\x72\x61\x64\xe2\x88\x95\x73\x32",
  "\x70\x73", "\x6e\x73", "\xce\xbc\x73", "\x6d\x73", "\x70\x76", "\x6e\x76", "\xce\xbc\x76", "\x6d\x76",
  "\x6b\x76", "\x6d\x76", "\x70\x77", "\x6e\x77", "\xce\xbc\x77", "\x6d\x77", "\x6b\x77", "\x6d\x77"
};

static const char *grn_nfkc170_decompose_table_e38f[] = {
  "\x6b\xcf\x89", "\x6d\xcf\x89", "\x61\x2e\x6d\x2e", "\x62\x71", "\x63\x63", "\x63\x64", "\x63\xe2\x88\x95\x6b\x67", "\x63\x6f\x2e",
  "\x64\x62", "\x67\x79", "\x68\x61", "\x68\x70", "\x69\x6e", "\x6b\x6b", "\x6b\x6d", "\x6b\x74",
  "\x6c\x6d", "\x6c\x6e", "\x6c\x6f\x67", "\x6c\x78", "\x6d\x62", "\x6d\x69\x6c", "\x6d\x6f\x6c", "\x70\x68",
  "\x70\x2e\x6d\x2e", "\x70\x70\x6d", "\x70\x72", "\x73\x72", "\x73\x76", "\x77\x62", "\x76\xe2\x88\x95\x6d", "\x61\xe2\x88\x95\x6d",
  "\x31\xe6\x97\xa5", "\x32\xe6\x97\xa5", "\x33\xe6\x97\xa5", "\x34\xe6\x97\xa5", "\x35\xe6\x97\xa5", "\x36\xe6\x97\xa5", "\x37\xe6\x97\xa5", "\x38\xe6\x97\xa5",
  "\x39\xe6\x97\xa5", "\x31\x30\xe6\x97\xa5", "\x31\x31\xe6\x97\xa5", "\x31\x32\xe6\x97\xa5", "\x31\x33\xe6\x97\xa5", "\x31\x34\xe6\x97\xa5", "\x31\x35\xe6\x97\xa5", "\x31\x36\xe6\x97\xa5",
  "\x31\x37\xe6\x97\xa5", "\x31\x38\xe6\x97\xa5", "\x31\x39\xe6\x97\xa5", "\x32\x30\xe6\x97\xa5", "\x32\x31\xe6\x97\xa5", "\x32\x32\xe6\x97\xa5", "\x32\x33\xe6\x97\xa5", "\x32\x34\xe6\x97\xa5",
  "\x32\x35\xe6\x97\xa5", "\x32\x36\xe6\x97\xa5", "\x32\x37\xe6\x97\xa5", "\x32\x38\xe6\x97\xa5", "\x32\x39\xe6\x97\xa5", "\x33\x30\xe6\x97\xa5", "\x33\x31\xe6\x97\xa5", "\x67\x61\x6c"
};

static const char *grn_nfkc170_decompose_table_ea99[] = {
  "\xea\x99\x81", NULL, "\xea\x99\x83", NULL, "\xea\x99\x85", NULL, "\xea\x99\x87", NULL,
  "\xea\x99\x89", NULL, "\xea\x99\x8b", NULL, "\xea\x99\x8d", NULL, "\xea\x99\x8f", NULL,
  "\xea\x99\x91", NULL, "\xea\x99\x93", NULL, "\xea\x99\x95", NULL, "\xea\x99\x97", NULL,
  "\xea\x99\x99", NULL, "\xea\x99\x9b", NULL, "\xea\x99\x9d", NULL, "\xea\x99\x9f", NULL,
  "\xea\x99\xa1", NULL, "\xea\x99\xa3", NULL, "\xea\x99\xa5", NULL, "\xea\x99\xa7", NULL,
  "\xea\x99\xa9", NULL, "\xea\x99\xab", NULL, "\xea\x99\xad"
};

static const char *grn_nfkc170_decompose_table_ea9a[] = {
  "\xea\x9a\x81", NULL, "\xea\x9a\x83", NULL, "\xea\x9a\x85", NULL, "\xea\x9a\x87", NULL,
  "\xea\x9a\x89", NULL, "\xea\x9a\x8b", NULL, "\xea\x9a\x8d", NULL, "\xea\x9a\x8f", NULL,
  "\xea\x9a\x91", NULL, "\xea\x9a\x93", NULL, "\xea\x9a\x95", NULL, "\xea\x9a\x97", NULL,
  "\xea\x9a\x99", NULL, "\xea\x9a\x9b", NULL, "\xd1\x8a", "\xd1\x8c"
};

static const char *grn_nfkc170_decompose_table_ea9c[] = {
  "\xea\x9c\xa3", NULL, "\xea\x9c\xa5", NULL, "\xea\x9c\xa7", NULL, "\xea\x9c\xa9", NULL,
  "\xea\x9c\xab", NULL, "\xea\x9c\xad", NULL, "\xea\x9c\xaf", NULL, NULL, NULL,
  "\xea\x9c\xb3", NULL, "\xea\x9c\xb5", NULL, "\xea\x9c\xb7", NULL, "\xea\x9c\xb9", NULL,
  "\xea\x9c\xbb", NULL, "\xea\x9c\xbd", NULL, "\xea\x9c\xbf"
};

static const char *grn_nfkc170_decompose_table_ea9d[] = {
  "\xea\x9d\x81", NULL, "\xea\x9d\x83", NULL, "\xea\x9d\x85", NULL, "\xea\x9d\x87", NULL,
  "\xea\x9d\x89", NULL, "\xea\x9d\x8b", NULL, "\xea\x9d\x8d", NULL, "\xea\x9d\x8f", NULL,
  "\xea\x9d\x91", NULL, "\xea\x9d\x93", NULL, "\xea\x9d\x95", NULL, "\xea\x9d\x97", NULL,
  "\xea\x9d\x99", NULL, "\xea\x9d\x9b", NULL, "\xea\x9d\x9d", NULL, "\xea\x9d\x9f", NULL,
  "\xea\x9d\xa1", NULL, "\xea\x9d\xa3", NULL, "\xea\x9d\xa5", NULL, "\xea\x9d\xa7", NULL,
  "\xea\x9d\xa9", NULL, "\xea\x9d\xab", NULL, "\xea\x9d\xad", NULL, "\xea\x9d\xaf", NULL,
  "\xea\x9d\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xea\x9d\xba", NULL, "\xea\x9d\xbc", NULL, "\xe1\xb5\xb9", "\xea\x9d\xbf"
};

static const char *grn_nfkc170_decompose_table_ea9e[] = {
  "\xea\x9e\x81", NULL, "\xea\x9e\x83", NULL, "\xea\x9e\x85", NULL, "\xea\x9e\x87", NULL,
  NULL, NULL, NULL, "\xea\x9e\x8c", NULL, "\xc9\xa5", NULL, NULL,
  "\xea\x9e\x91", NULL, "\xea\x9e\x93", NULL, NULL, NULL, "\xea\x9e\x97", NULL,
  "\xea\x9e\x99", NULL, "\xea\x9e\x9b", NULL, "\xea\x9e\x9d", NULL, "\xea\x9e\x9f", NULL,
  "\xea\x9e\xa1", NULL, "\xea\x9e\xa3", NULL, "\xea\x9e\xa5", NULL, "\xea\x9e\xa7", NULL,
  "\xea\x9e\xa9", NULL, "\xc9\xa6", "\xc9\x9c", "\xc9\xa1", "\xc9\xac", "\xc9\xaa", NULL,
  "\xca\x9e", "\xca\x87", "\xca\x9d", "\xea\xad\x93", "\xea\x9e\xb5", NULL, "\xea\x9e\xb7", NULL,
  "\xea\x9e\xb9", NULL, "\xea\x9e\xbb", NULL, "\xea\x9e\xbd", NULL, "\xea\x9e\xbf"
};

static const char *grn_nfkc170_decompose_table_ea9f[] = {
  "\xea\x9f\x81", NULL, "\xea\x9f\x83", NULL, "\xea\x9e\x94", "\xca\x82", "\xe1\xb6\x8e", "\xea\x9f\x88",
  NULL, "\xea\x9f\x8a", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\x9f\x91", NULL, NULL, NULL, NULL, NULL, "\xea\x9f\x97", NULL,
  "\xea\x9f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\x73", "\x63", "\x66", "\x71", "\xea\x9f\xb6", NULL, NULL,
  "\xc4\xa7", "\xc5\x93"
};

static const char *grn_nfkc170_decompose_table_eaad[] = {
  "\xea\x9c\xa7", "\xea\xac\xb7", "\xc9\xab", "\xea\xad\x92", NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, "\xca\x8d"
};

static const char *grn_nfkc170_decompose_table_efa4[] = {
  "\xe8\xb1\x88", "\xe6\x9b\xb4", "\xe8\xbb\x8a", "\xe8\xb3\x88", "\xe6\xbb\x91", "\xe4\xb8\xb2", "\xe5\x8f\xa5", "\xe9\xbe\x9c",
  "\xe9\xbe\x9c", "\xe5\xa5\x91", "\xe9\x87\x91", "\xe5\x96\x87", "\xe5\xa5\x88", "\xe6\x87\xb6", "\xe7\x99\xa9", "\xe7\xbe\x85",
  "\xe8\x98\xbf", "\xe8\x9e\xba", "\xe8\xa3\xb8", "\xe9\x82\x8f", "\xe6\xa8\x82", "\xe6\xb4\x9b", "\xe7\x83\x99", "\xe7\x8f\x9e",
  "\xe8\x90\xbd", "\xe9\x85\xaa", "\xe9\xa7\xb1", "\xe4\xba\x82", "\xe5\x8d\xb5", "\xe6\xac\x84", "\xe7\x88\x9b", "\xe8\x98\xad",
  "\xe9\xb8\x9e", "\xe5\xb5\x90", "\xe6\xbf\xab", "\xe8\x97\x8d", "\xe8\xa5\xa4", "\xe6\x8b\x89", "\xe8\x87\x98", "\xe8\xa0\x9f",
  "\xe5\xbb\x8a", "\xe6\x9c\x97", "\xe6\xb5\xaa", "\xe7\x8b\xbc", "\xe9\x83\x8e", "\xe4\xbe\x86", "\xe5\x86\xb7", "\xe5\x8b\x9e",
  "\xe6\x93\x84", "\xe6\xab\x93", "\xe7\x88\x90", "\xe7\x9b\xa7", "\xe8\x80\x81", "\xe8\x98\x86", "\xe8\x99\x9c", "\xe8\xb7\xaf",
  "\xe9\x9c\xb2", "\xe9\xad\xaf", "\xe9\xb7\xba", "\xe7\xa2\x8c", "\xe7\xa5\xbf", "\xe7\xb6\xa0", "\xe8\x8f\x89", "\xe9\x8c\x84"
};

static const char *grn_nfkc170_decompose_table_efa5[] = {
  "\xe9\xb9\xbf", "\xe8\xab\x96", "\xe5\xa3\x9f", "\xe5\xbc\x84", "\xe7\xb1\xa0", "\xe8\x81\xbe", "\xe7\x89\xa2", "\xe7\xa3\x8a",
  "\xe8\xb3\x82", "\xe9\x9b\xb7", "\xe5\xa3\x98", "\xe5\xb1\xa2", "\xe6\xa8\x93", "\xe6\xb7\x9a", "\xe6\xbc\x8f", "\xe7\xb4\xaf",
  "\xe7\xb8\xb7", "\xe9\x99\x8b", "\xe5\x8b\x92", "\xe8\x82\x8b", "\xe5\x87\x9c", "\xe5\x87\x8c", "\xe7\xa8\x9c", "\xe7\xb6\xbe",
  "\xe8\x8f\xb1", "\xe9\x99\xb5", "\xe8\xae\x80", "\xe6\x8b\x8f", "\xe6\xa8\x82", "\xe8\xab\xbe", "\xe4\xb8\xb9", "\xe5\xaf\xa7",
  "\xe6\x80\x92", "\xe7\x8e\x87", "\xe7\x95\xb0", "\xe5\x8c\x97", "\xe7\xa3\xbb", "\xe4\xbe\xbf", "\xe5\xbe\xa9", "\xe4\xb8\x8d",
  "\xe6\xb3\x8c", "\xe6\x95\xb8", "\xe7\xb4\xa2", "\xe5\x8f\x83", "\xe5\xa1\x9e", "\xe7\x9c\x81", "\xe8\x91\x89", "\xe8\xaa\xaa",
  "\xe6\xae\xba", "\xe8\xbe\xb0", "\xe6\xb2\x88", "\xe6\x8b\xbe", "\xe8\x8b\xa5", "\xe6\x8e\xa0", "\xe7\x95\xa5", "\xe4\xba\xae",
  "\xe5\x85\xa9", "\xe5\x87\x89", "\xe6\xa2\x81", "\xe7\xb3\xa7", "\xe8\x89\xaf", "\xe8\xab\x92", "\xe9\x87\x8f", "\xe5\x8b\xb5"
};

static const char *grn_nfkc170_decompose_table_efa6[] = {
  "\xe5\x91\x82", "\xe5\xa5\xb3", "\xe5\xbb\xac", "\xe6\x97\x85", "\xe6\xbf\xbe", "\xe7\xa4\xaa", "\xe9\x96\xad", "\xe9\xa9\xaa",
  "\xe9\xba\x97", "\xe9\xbb\x8e", "\xe5\x8a\x9b", "\xe6\x9b\x86", "\xe6\xad\xb7", "\xe8\xbd\xa2", "\xe5\xb9\xb4", "\xe6\x86\x90",
  "\xe6\x88\x80", "\xe6\x92\x9a", "\xe6\xbc\xa3", "\xe7\x85\x89", "\xe7\x92\x89", "\xe7\xa7\x8a", "\xe7\xb7\xb4", "\xe8\x81\xaf",
  "\xe8\xbc\xa6", "\xe8\x93\xae", "\xe9\x80\xa3", "\xe9\x8d\x8a", "\xe5\x88\x97", "\xe5\x8a\xa3", "\xe5\x92\xbd", "\xe7\x83\x88",
  "\xe8\xa3\x82", "\xe8\xaa\xaa", "\xe5\xbb\x89", "\xe5\xbf\xb5", "\xe6\x8d\xbb", "\xe6\xae\xae", "\xe7\xb0\xbe", "\xe7\x8d\xb5",
  "\xe4\xbb\xa4", "\xe5\x9b\xb9", "\xe5\xaf\xa7", "\xe5\xb6\xba", "\xe6\x80\x9c", "\xe7\x8e\xb2", "\xe7\x91\xa9", "\xe7\xbe\x9a",
  "\xe8\x81\x86", "\xe9\x88\xb4", "\xe9\x9b\xb6", "\xe9\x9d\x88", "\xe9\xa0\x98", "\xe4\xbe\x8b", "\xe7\xa6\xae", "\xe9\x86\xb4",
  "\xe9\x9a\xb8", "\xe6\x83\xa1", "\xe4\xba\x86", "\xe5\x83\x9a", "\xe5\xaf\xae", "\xe5\xb0\xbf", "\xe6\x96\x99", "\xe6\xa8\x82"
};

static const char *grn_nfkc170_decompose_table_efa7[] = {
  "\xe7\x87\x8e", "\xe7\x99\x82", "\xe8\x93\xbc", "\xe9\x81\xbc", "\xe9\xbe\x8d", "\xe6\x9a\x88", "\xe9\x98\xae", "\xe5\x8a\x89",
  "\xe6\x9d\xbb", "\xe6\x9f\xb3", "\xe6\xb5\x81", "\xe6\xba\x9c", "\xe7\x90\x89", "\xe7\x95\x99", "\xe7\xa1\xab", "\xe7\xb4\x90",
  "\xe9\xa1\x9e", "\xe5\x85\xad", "\xe6\x88\xae", "\xe9\x99\xb8", "\xe5\x80\xab", "\xe5\xb4\x99", "\xe6\xb7\xaa", "\xe8\xbc\xaa",
  "\xe5\xbe\x8b", "\xe6\x85\x84", "\xe6\xa0\x97", "\xe7\x8e\x87", "\xe9\x9a\x86", "\xe5\x88\xa9", "\xe5\x90\x8f", "\xe5\xb1\xa5",
  "\xe6\x98\x93", "\xe6\x9d\x8e", "\xe6\xa2\xa8", "\xe6\xb3\xa5", "\xe7\x90\x86", "\xe7\x97\xa2", "\xe7\xbd\xb9", "\xe8\xa3\x8f",
  "\xe8\xa3\xa1", "\xe9\x87\x8c", "\xe9\x9b\xa2", "\xe5\x8c\xbf", "\xe6\xba\xba", "\xe5\x90\x9d", "\xe7\x87\x90", "\xe7\x92\x98",
  "\xe8\x97\xba", "\xe9\x9a\xa3", "\xe9\xb1\x97", "\xe9\xba\x9f", "\xe6\x9e\x97", "\xe6\xb7\x8b", "\xe8\x87\xa8", "\xe7\xab\x8b",
  "\xe7\xac\xa0", "\xe7\xb2\x92", "\xe7\x8b\x80", "\xe7\x82\x99", "\xe8\xad\x98", "\xe4\xbb\x80", "\xe8\x8c\xb6", "\xe5\x88\xba"
};

static const char *grn_nfkc170_decompose_table_efa8[] = {
  "\xe5\x88\x87", "\xe5\xba\xa6", "\xe6\x8b\x93", "\xe7\xb3\x96", "\xe5\xae\x85", "\xe6\xb4\x9e", "\xe6\x9a\xb4", "\xe8\xbc\xbb",
  "\xe8\xa1\x8c", "\xe9\x99\x8d", "\xe8\xa6\x8b", "\xe5\xbb\x93", "\xe5\x85\x80", "\xe5\x97\x80", NULL, NULL,
  "\xe5\xa1\x9a", NULL, "\xe6\x99\xb4", NULL, NULL, "\xe5\x87\x9e", "\xe7\x8c\xaa", "\xe7\x9b\x8a",
  "\xe7\xa4\xbc", "\xe7\xa5\x9e", "\xe7\xa5\xa5", "\xe7\xa6\x8f", "\xe9\x9d\x96", "\xe7\xb2\xbe", "\xe7\xbe\xbd", NULL,
  "\xe8\x98\x92", NULL, "\xe8\xab\xb8", NULL, NULL, "\xe9\x80\xb8", "\xe9\x83\xbd", NULL,
  NULL, NULL, "\xe9\xa3\xaf", "\xe9\xa3\xbc", "\xe9\xa4\xa8", "\xe9\xb6\xb4", "\xe9\x83\x9e", "\xe9\x9a\xb7",
  "\xe4\xbe\xae", "\xe5\x83\xa7", "\xe5\x85\x8d", "\xe5\x8b\x89", "\xe5\x8b\xa4", "\xe5\x8d\x91", "\xe5\x96\x9d", "\xe5\x98\x86",
  "\xe5\x99\xa8", "\xe5\xa1\x80", "\xe5\xa2\xa8", "\xe5\xb1\xa4", "\xe5\xb1\xae", "\xe6\x82\x94", "\xe6\x85\xa8", "\xe6\x86\x8e"
};

static const char *grn_nfkc170_decompose_table_efa9[] = {
  "\xe6\x87\xb2", "\xe6\x95\x8f", "\xe6\x97\xa2", "\xe6\x9a\x91", "\xe6\xa2\x85", "\xe6\xb5\xb7", "\xe6\xb8\x9a", "\xe6\xbc\xa2",
  "\xe7\x85\xae", "\xe7\x88\xab", "\xe7\x90\xa2", "\xe7\xa2\x91", "\xe7\xa4\xbe", "\xe7\xa5\x89", "\xe7\xa5\x88", "\xe7\xa5\x90",
  "\xe7\xa5\x96", "\xe7\xa5\x9d", "\xe7\xa6\x8d", "\xe7\xa6\x8e", "\xe7\xa9\x80", "\xe7\xaa\x81", "\xe7\xaf\x80", "\xe7\xb7\xb4",
  "\xe7\xb8\x89", "\xe7\xb9\x81", "\xe7\xbd\xb2", "\xe8\x80\x85", "\xe8\x87\xad", "\xe8\x89\xb9", "\xe8\x89\xb9", "\xe8\x91\x97",
  "\xe8\xa4\x90", "\xe8\xa6\x96", "\xe8\xac\x81", "\xe8\xac\xb9", "\xe8\xb3\x93", "\xe8\xb4\x88", "\xe8\xbe\xb6", "\xe9\x80\xb8",
  "\xe9\x9b\xa3", "\xe9\x9f\xbf", "\xe9\xa0\xbb", "\xe6\x81\xb5", "\xf0\xa4\x8b\xae", "\xe8\x88\x98", NULL, NULL,
  "\xe4\xb8\xa6", "\xe5\x86\xb5", "\xe5\x85\xa8", "\xe4\xbe\x80", "\xe5\x85\x85", "\xe5\x86\x80", "\xe5\x8b\x87", "\xe5\x8b\xba",
  "\xe5\x96\x9d", "\xe5\x95\x95", "\xe5\x96\x99", "\xe5\x97\xa2", "\xe5\xa1\x9a", "\xe5\xa2\xb3", "\xe5\xa5\x84", "\xe5\xa5\x94"
};

static const char *grn_nfkc170_decompose_table_efaa[] = {
  "\xe5\xa9\xa2", "\xe5\xac\xa8", "\xe5\xbb\x92", "\xe5\xbb\x99", "\xe5\xbd\xa9", "\xe5\xbe\xad", "\xe6\x83\x98", "\xe6\x85\x8e",
  "\xe6\x84\x88", "\xe6\x86\x8e", "\xe6\x85\xa0", "\xe6\x87\xb2", "\xe6\x88\xb4", "\xe6\x8f\x84", "\xe6\x90\x9c", "\xe6\x91\x92",
  "\xe6\x95\x96", "\xe6\x99\xb4", "\xe6\x9c\x97", "\xe6\x9c\x9b", "\xe6\x9d\x96", "\xe6\xad\xb9", "\xe6\xae\xba", "\xe6\xb5\x81",
  "\xe6\xbb\x9b", "\xe6\xbb\x8b", "\xe6\xbc\xa2", "\xe7\x80\x9e", "\xe7\x85\xae", "\xe7\x9e\xa7", "\xe7\x88\xb5", "\xe7\x8a\xaf",
  "\xe7\x8c\xaa", "\xe7\x91\xb1", "\xe7\x94\x86", "\xe7\x94\xbb", "\xe7\x98\x9d", "\xe7\x98\x9f", "\xe7\x9b\x8a", "\xe7\x9b\x9b",
  "\xe7\x9b\xb4", "\xe7\x9d\x8a", "\xe7\x9d\x80", "\xe7\xa3\x8c", "\xe7\xaa\xb1", "\xe7\xaf\x80", "\xe7\xb1\xbb", "\xe7\xb5\x9b",
  "\xe7\xb7\xb4", "\xe7\xbc\xbe", "\xe8\x80\x85", "\xe8\x8d\x92", "\xe8\x8f\xaf", "\xe8\x9d\xb9", "\xe8\xa5\x81", "\xe8\xa6\x86",
  "\xe8\xa6\x96", "\xe8\xaa\xbf", "\xe8\xab\xb8", "\xe8\xab\x8b", "\xe8\xac\x81", "\xe8\xab\xbe", "\xe8\xab\xad", "\xe8\xac\xb9"
};

static const char *grn_nfkc170_decompose_table_efab[] = {
  "\xe8\xae\x8a", "\xe8\xb4\x88", "\xe8\xbc\xb8", "\xe9\x81\xb2", "\xe9\x86\x99", "\xe9\x89\xb6", "\xe9\x99\xbc", "\xe9\x9b\xa3",
  "\xe9\x9d\x96", "\xe9\x9f\x9b", "\xe9\x9f\xbf", "\xe9\xa0\x8b", "\xe9\xa0\xbb", "\xe9\xac\x92", "\xe9\xbe\x9c", "\xf0\xa2\xa1\x8a",
  "\xf0\xa2\xa1\x84", "\xf0\xa3\x8f\x95", "\xe3\xae\x9d", "\xe4\x80\x98", "\xe4\x80\xb9", "\xf0\xa5\x89\x89", "\xf0\xa5\xb3\x90", "\xf0\xa7\xbb\x93",
  "\xe9\xbd\x83", "\xe9\xbe\x8e"
};

static const char *grn_nfkc170_decompose_table_efac[] = {
  "\x66\x66", "\x66\x69", "\x66\x6c", "\x66\x66\x69", "\x66\x66\x6c", "\x73\x74", "\x73\x74", NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xd5\xb4\xd5\xb6", "\xd5\xb4\xd5\xa5", "\xd5\xb4\xd5\xab", "\xd5\xbe\xd5\xb6", "\xd5\xb4\xd5\xad",
  NULL, NULL, NULL, NULL, NULL, "\xd7\x99\xd6\xb4", NULL, "\xd7\xb2\xd6\xb7",
  "\xd7\xa2", "\xd7\x90", "\xd7\x93", "\xd7\x94", "\xd7\x9b", "\xd7\x9c", "\xd7\x9d", "\xd7\xa8",
  "\xd7\xaa", "\x2b", "\xd7\xa9\xd7\x81", "\xd7\xa9\xd7\x82", "\xd7\xa9\xd6\xbc\xd7\x81", "\xd7\xa9\xd6\xbc\xd7\x82", "\xd7\x90\xd6\xb7", "\xd7\x90\xd6\xb8",
  "\xd7\x90\xd6\xbc", "\xd7\x91\xd6\xbc", "\xd7\x92\xd6\xbc", "\xd7\x93\xd6\xbc", "\xd7\x94\xd6\xbc", "\xd7\x95\xd6\xbc", "\xd7\x96\xd6\xbc", NULL,
  "\xd7\x98\xd6\xbc", "\xd7\x99\xd6\xbc", "\xd7\x9a\xd6\xbc", "\xd7\x9b\xd6\xbc", "\xd7\x9c\xd6\xbc", NULL, "\xd7\x9e\xd6\xbc"
};

static const char *grn_nfkc170_decompose_table_efad[] = {
  "\xd7\xa0\xd6\xbc", "\xd7\xa1\xd6\xbc", NULL, "\xd7\xa3\xd6\xbc", "\xd7\xa4\xd6\xbc", NULL, "\xd7\xa6\xd6\xbc", "\xd7\xa7\xd6\xbc",
  "\xd7\xa8\xd6\xbc", "\xd7\xa9\xd6\xbc", "\xd7\xaa\xd6\xbc", "\xd7\x95\xd6\xb9", "\xd7\x91\xd6\xbf", "\xd7\x9b\xd6\xbf", "\xd7\xa4\xd6\xbf", "\xd7\x90\xd7\x9c",
  "\xd9\xb1", "\xd9\xb1", "\xd9\xbb", "\xd9\xbb", "\xd9\xbb", "\xd9\xbb", "\xd9\xbe", "\xd9\xbe",
  "\xd9\xbe", "\xd9\xbe", "\xda\x80", "\xda\x80", "\xda\x80", "\xda\x80", "\xd9\xba", "\xd9\xba",
  "\xd9\xba", "\xd9\xba", "\xd9\xbf", "\xd9\xbf", "\xd9\xbf", "\xd9\xbf", "\xd9\xb9", "\xd9\xb9",
  "\xd9\xb9", "\xd9\xb9", "\xda\xa4", "\xda\xa4", "\xda\xa4", "\xda\xa4", "\xda\xa6", "\xda\xa6",
  "\xda\xa6", "\xda\xa6", "\xda\x84", "\xda\x84", "\xda\x84", "\xda\x84", "\xda\x83", "\xda\x83",
  "\xda\x83", "\xda\x83", "\xda\x86", "\xda\x86", "\xda\x86", "\xda\x86", "\xda\x87", "\xda\x87"
};

static const char *grn_nfkc170_decompose_table_efae[] = {
  "\xda\x87", "\xda\x87", "\xda\x8d", "\xda\x8d", "\xda\x8c", "\xda\x8c", "\xda\x8e", "\xda\x8e",
  "\xda\x88", "\xda\x88", "\xda\x98", "\xda\x98", "\xda\x91", "\xda\x91", "\xda\xa9", "\xda\xa9",
  "\xda\xa9", "\xda\xa9", "\xda\xaf", "\xda\xaf", "\xda\xaf", "\xda\xaf", "\xda\xb3", "\xda\xb3",
  "\xda\xb3", "\xda\xb3", "\xda\xb1", "\xda\xb1", "\xda\xb1", "\xda\xb1", "\xda\xba", "\xda\xba",
  "\xda\xbb", "\xda\xbb", "\xda\xbb", "\xda\xbb", "\xdb\x80", "\xdb\x80", "\xdb\x81", "\xdb\x81",
  "\xdb\x81", "\xdb\x81", "\xda\xbe", "\xda\xbe", "\xda\xbe", "\xda\xbe", "\xdb\x92", "\xdb\x92",
  "\xdb\x93", "\xdb\x93"
};

static const char *grn_nfkc170_decompose_table_efaf[] = {
  "\xda\xad", "\xda\xad", "\xda\xad", "\xda\xad", "\xdb\x87", "\xdb\x87", "\xdb\x86", "\xdb\x86",
  "\xdb\x88", "\xdb\x88", "\xdb\x87\xd9\xb4", "\xdb\x8b", "\xdb\x8b", "\xdb\x85", "\xdb\x85", "\xdb\x89",
  "\xdb\x89", "\xdb\x90", "\xdb\x90", "\xdb\x90", "\xdb\x90", "\xd9\x89", "\xd9\x89", "\xd8\xa6\xd8\xa7",
  "\xd8\xa6\xd8\xa7", "\xd8\xa6\xdb\x95", "\xd8\xa6\xdb\x95", "\xd8\xa6\xd9\x88", "\xd8\xa6\xd9\x88", "\xd8\xa6\xdb\x87", "\xd8\xa6\xdb\x87", "\xd8\xa6\xdb\x86",
  "\xd8\xa6\xdb\x86", "\xd8\xa6\xdb\x88", "\xd8\xa6\xdb\x88", "\xd8\xa6\xdb\x90", "\xd8\xa6\xdb\x90", "\xd8\xa6\xdb\x90", "\xd8\xa6\xd9\x89", "\xd8\xa6\xd9\x89",
  "\xd8\xa6\xd9\x89", "\xdb\x8c", "\xdb\x8c", "\xdb\x8c", "\xdb\x8c"
};

static const char *grn_nfkc170_decompose_table_efb0[] = {
  "\xd8\xa6\xd8\xac", "\xd8\xa6\xd8\xad", "\xd8\xa6\xd9\x85", "\xd8\xa6\xd9\x89", "\xd8\xa6\xd9\x8a", "\xd8\xa8\xd8\xac", "\xd8\xa8\xd8\xad", "\xd8\xa8\xd8\xae",
  "\xd8\xa8\xd9\x85", "\xd8\xa8\xd9\x89", "\xd8\xa8\xd9\x8a", "\xd8\xaa\xd8\xac", "\xd8\xaa\xd8\xad", "\xd8\xaa\xd8\xae", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x89",
  "\xd8\xaa\xd9\x8a", "\xd8\xab\xd8\xac", "\xd8\xab\xd9\x85", "\xd8\xab\xd9\x89", "\xd8\xab\xd9\x8a", "\xd8\xac\xd8\xad", "\xd8\xac\xd9\x85", "\xd8\xad\xd8\xac",
  "\xd8\xad\xd9\x85", "\xd8\xae\xd8\xac", "\xd8\xae\xd8\xad", "\xd8\xae\xd9\x85", "\xd8\xb3\xd8\xac", "\xd8\xb3\xd8\xad", "\xd8\xb3\xd8\xae", "\xd8\xb3\xd9\x85",
  "\xd8\xb5\xd8\xad", "\xd8\xb5\xd9\x85", "\xd8\xb6\xd8\xac", "\xd8\xb6\xd8\xad", "\xd8\xb6\xd8\xae", "\xd8\xb6\xd9\x85", "\xd8\xb7\xd8\xad", "\xd8\xb7\xd9\x85",
  "\xd8\xb8\xd9\x85", "\xd8\xb9\xd8\xac", "\xd8\xb9\xd9\x85", "\xd8\xba\xd8\xac", "\xd8\xba\xd9\x85", "\xd9\x81\xd8\xac", "\xd9\x81\xd8\xad", "\xd9\x81\xd8\xae",
  "\xd9\x81\xd9\x85", "\xd9\x81\xd9\x89", "\xd9\x81\xd9\x8a", "\xd9\x82\xd8\xad", "\xd9\x82\xd9\x85", "\xd9\x82\xd9\x89", "\xd9\x82\xd9\x8a", "\xd9\x83\xd8\xa7",
  "\xd9\x83\xd8\xac", "\xd9\x83\xd8\xad", "\xd9\x83\xd8\xae", "\xd9\x83\xd9\x84", "\xd9\x83\xd9\x85", "\xd9\x83\xd9\x89", "\xd9\x83\xd9\x8a", "\xd9\x84\xd8\xac"
};

static const char *grn_nfkc170_decompose_table_efb1[] = {
  "\xd9\x84\xd8\xad", "\xd9\x84\xd8\xae", "\xd9\x84\xd9\x85", "\xd9\x84\xd9\x89", "\xd9\x84\xd9\x8a", "\xd9\x85\xd8\xac", "\xd9\x85\xd8\xad", "\xd9\x85\xd8\xae",
  "\xd9\x85\xd9\x85", "\xd9\x85\xd9\x89", "\xd9\x85\xd9\x8a", "\xd9\x86\xd8\xac", "\xd9\x86\xd8\xad", "\xd9\x86\xd8\xae", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x89",
  "\xd9\x86\xd9\x8a", "\xd9\x87\xd8\xac", "\xd9\x87\xd9\x85", "\xd9\x87\xd9\x89", "\xd9\x87\xd9\x8a", "\xd9\x8a\xd8\xac", "\xd9\x8a\xd8\xad", "\xd9\x8a\xd8\xae",
  "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x89", "\xd9\x8a\xd9\x8a", "\xd8\xb0\xd9\xb0", "\xd8\xb1\xd9\xb0", "\xd9\x89\xd9\xb0", "\xd9\x8c\xd9\x91", "\xd9\x8d\xd9\x91",
  "\xd9\x8e\xd9\x91", "\xd9\x8f\xd9\x91", "\xd9\x90\xd9\x91", "\xd9\x91\xd9\xb0", "\xd8\xa6\xd8\xb1", "\xd8\xa6\xd8\xb2", "\xd8\xa6\xd9\x85", "\xd8\xa6\xd9\x86",
  "\xd8\xa6\xd9\x89", "\xd8\xa6\xd9\x8a", "\xd8\xa8\xd8\xb1", "\xd8\xa8\xd8\xb2", "\xd8\xa8\xd9\x85", "\xd8\xa8\xd9\x86", "\xd8\xa8\xd9\x89", "\xd8\xa8\xd9\x8a",
  "\xd8\xaa\xd8\xb1", "\xd8\xaa\xd8\xb2", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x86", "\xd8\xaa\xd9\x89", "\xd8\xaa\xd9\x8a", "\xd8\xab\xd8\xb1", "\xd8\xab\xd8\xb2",
  "\xd8\xab\xd9\x85", "\xd8\xab\xd9\x86", "\xd8\xab\xd9\x89", "\xd8\xab\xd9\x8a", "\xd9\x81\xd9\x89", "\xd9\x81\xd9\x8a", "\xd9\x82\xd9\x89", "\xd9\x82\xd9\x8a"
};

static const char *grn_nfkc170_decompose_table_efb2[] = {
  "\xd9\x83\xd8\xa7", "\xd9\x83\xd9\x84", "\xd9\x83\xd9\x85", "\xd9\x83\xd9\x89", "\xd9\x83\xd9\x8a", "\xd9\x84\xd9\x85", "\xd9\x84\xd9\x89", "\xd9\x84\xd9\x8a",
  "\xd9\x85\xd8\xa7", "\xd9\x85\xd9\x85", "\xd9\x86\xd8\xb1", "\xd9\x86\xd8\xb2", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x86", "\xd9\x86\xd9\x89", "\xd9\x86\xd9\x8a",
  "\xd9\x89\xd9\xb0", "\xd9\x8a\xd8\xb1", "\xd9\x8a\xd8\xb2", "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x86", "\xd9\x8a\xd9\x89", "\xd9\x8a\xd9\x8a", "\xd8\xa6\xd8\xac",
  "\xd8\xa6\xd8\xad", "\xd8\xa6\xd8\xae", "\xd8\xa6\xd9\x85", "\xd8\xa6\xd9\x87", "\xd8\xa8\xd8\xac", "\xd8\xa8\xd8\xad", "\xd8\xa8\xd8\xae", "\xd8\xa8\xd9\x85",
  "\xd8\xa8\xd9\x87", "\xd8\xaa\xd8\xac", "\xd8\xaa\xd8\xad", "\xd8\xaa\xd8\xae", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x87", "\xd8\xab\xd9\x85", "\xd8\xac\xd8\xad",
  "\xd8\xac\xd9\x85", "\xd8\xad\xd8\xac", "\xd8\xad\xd9\x85", "\xd8\xae\xd8\xac", "\xd8\xae\xd9\x85", "\xd8\xb3\xd8\xac", "\xd8\xb3\xd8\xad", "\xd8\xb3\xd8\xae",
  "\xd8\xb3\xd9\x85", "\xd8\xb5\xd8\xad", "\xd8\xb5\xd8\xae", "\xd8\xb5\xd9\x85", "\xd8\xb6\xd8\xac", "\xd8\xb6\xd8\xad", "\xd8\xb6\xd8\xae", "\xd8\xb6\xd9\x85",
  "\xd8\xb7\xd8\xad", "\xd8\xb8\xd9\x85", "\xd8\xb9\xd8\xac", "\xd8\xb9\xd9\x85", "\xd8\xba\xd8\xac", "\xd8\xba\xd9\x85", "\xd9\x81\xd8\xac", "\xd9\x81\xd8\xad"
};

static const char *grn_nfkc170_decompose_table_efb3[] = {
  "\xd9\x81\xd8\xae", "\xd9\x81\xd9\x85", "\xd9\x82\xd8\xad", "\xd9\x82\xd9\x85", "\xd9\x83\xd8\xac", "\xd9\x83\xd8\xad", "\xd9\x83\xd8\xae", "\xd9\x83\xd9\x84",
  "\xd9\x83\xd9\x85", "\xd9\x84\xd8\xac", "\xd9\x84\xd8\xad", "\xd9\x84\xd8\xae", "\xd9\x84\xd9\x85", "\xd9\x84\xd9\x87", "\xd9\x85\xd8\xac", "\xd9\x85\xd8\xad",
  "\xd9\x85\xd8\xae", "\xd9\x85\xd9\x85", "\xd9\x86\xd8\xac", "\xd9\x86\xd8\xad", "\xd9\x86\xd8\xae", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x87", "\xd9\x87\xd8\xac",
  "\xd9\x87\xd9\x85", "\xd9\x87\xd9\xb0", "\xd9\x8a\xd8\xac", "\xd9\x8a\xd8\xad", "\xd9\x8a\xd8\xae", "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x87", "\xd8\xa6\xd9\x85",
  "\xd8\xa6\xd9\x87", "\xd8\xa8\xd9\x85", "\xd8\xa8\xd9\x87", "\xd8\xaa\xd9\x85", "\xd8\xaa\xd9\x87", "\xd8\xab\xd9\x85", "\xd8\xab\xd9\x87", "\xd8\xb3\xd9\x85",
  "\xd8\xb3\xd9\x87", "\xd8\xb4\xd9\x85", "\xd8\xb4\xd9\x87", "\xd9\x83\xd9\x84", "\xd9\x83\xd9\x85", "\xd9\x84\xd9\x85", "\xd9\x86\xd9\x85", "\xd9\x86\xd9\x87",
  "\xd9\x8a\xd9\x85", "\xd9\x8a\xd9\x87", "\xd9\x80\xd9\x8e\xd9\x91", "\xd9\x80\xd9\x8f\xd9\x91", "\xd9\x80\xd9\x90\xd9\x91", "\xd8\xb7\xd9\x89", "\xd8\xb7\xd9\x8a", "\xd8\xb9\xd9\x89",
  "\xd8\xb9\xd9\x8a", "\xd8\xba\xd9\x89", "\xd8\xba\xd9\x8a", "\xd8\xb3\xd9\x89", "\xd8\xb3\xd9\x8a", "\xd8\xb4\xd9\x89", "\xd8\xb4\xd9\x8a", "\xd8\xad\xd9\x89"
};

static const char *grn_nfkc170_decompose_table_efb4[] = {
  "\xd8\xad\xd9\x8a", "\xd8\xac\xd9\x89", "\xd8\xac\xd9\x8a", "\xd8\xae\xd9\x89", "\xd8\xae\xd9\x8a", "\xd8\xb5\xd9\x89", "\xd8\xb5\xd9\x8a", "\xd8\xb6\xd9\x89",
  "\xd8\xb6\xd9\x8a", "\xd8\xb4\xd8\xac", "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae", "\xd8\xb4\xd9\x85", "\xd8\xb4\xd8\xb1", "\xd8\xb3\xd8\xb1", "\xd8\xb5\xd8\xb1",
  "\xd8\xb6\xd8\xb1", "\xd8\xb7\xd9\x89", "\xd8\xb7\xd9\x8a", "\xd8\xb9\xd9\x89", "\xd8\xb9\xd9\x8a", "\xd8\xba\xd9\x89", "\xd8\xba\xd9\x8a", "\xd8\xb3\xd9\x89",
  "\xd8\xb3\xd9\x8a", "\xd8\xb4\xd9\x89", "\xd8\xb4\xd9\x8a", "\xd8\xad\xd9\x89", "\xd8\xad\xd9\x8a", "\xd8\xac\xd9\x89", "\xd8\xac\xd9\x8a", "\xd8\xae\xd9\x89",
  "\xd8\xae\xd9\x8a", "\xd8\xb5\xd9\x89", "\xd8\xb5\xd9\x8a", "\xd8\xb6\xd9\x89", "\xd8\xb6\xd9\x8a", "\xd8\xb4\xd8\xac", "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae",
  "\xd8\xb4\xd9\x85", "\xd8\xb4\xd8\xb1", "\xd8\xb3\xd8\xb1", "\xd8\xb5\xd8\xb1", "\xd8\xb6\xd8\xb1", "\xd8\xb4\xd8\xac", "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae",
  "\xd8\xb4\xd9\x85", "\xd8\xb3\xd9\x87", "\xd8\xb4\xd9\x87", "\xd8\xb7\xd9\x85", "\xd8\xb3\xd8\xac", "\xd8\xb3\xd8\xad", "\xd8\xb3\xd8\xae", "\xd8\xb4\xd8\xac",
  "\xd8\xb4\xd8\xad", "\xd8\xb4\xd8\xae", "\xd8\xb7\xd9\x85", "\xd8\xb8\xd9\x85", "\xd8\xa7\xd9\x8b", "\xd8\xa7\xd9\x8b"
};

static const char *grn_nfkc170_decompose_table_efb5[] = {
  "\xd8\xaa\xd8\xac\xd9\x85", "\xd8\xaa\xd8\xad\xd8\xac", "\xd8\xaa\xd8\xad\xd8\xac", "\xd8\xaa\xd8\xad\xd9\x85", "\xd8\xaa\xd8\xae\xd9\x85", "\xd8\xaa\xd9\x85\xd8\xac", "\xd8\xaa\xd9\x85\xd8\xad", "\xd8\xaa\xd9\x85\xd8\xae",
  "\xd8\xac\xd9\x85\xd8\xad", "\xd8\xac\xd9\x85\xd8\xad", "\xd8\xad\xd9\x85\xd9\x8a", "\xd8\xad\xd9\x85\xd9\x89", "\xd8\xb3\xd8\xad\xd8\xac", "\xd8\xb3\xd8\xac\xd8\xad", "\xd8\xb3\xd8\xac\xd9\x89", "\xd8\xb3\xd9\x85\xd8\xad",
  "\xd8\xb3\xd9\x85\xd8\xad", "\xd8\xb3\xd9\x85\xd8\xac", "\xd8\xb3\xd9\x85\xd9\x85", "\xd8\xb3\xd9\x85\xd9\x85", "\xd8\xb5\xd8\xad\xd8\xad", "\xd8\xb5\xd8\xad\xd8\xad", "\xd8\xb5\xd9\x85\xd9\x85", "\xd8\xb4\xd8\xad\xd9\x85",
  "\xd8\xb4\xd8\xad\xd9\x85", "\xd8\xb4\xd8\xac\xd9\x8a", "\xd8\xb4\xd9\x85\xd8\xae", "\xd8\xb4\xd9\x85\xd8\xae", "\xd8\xb4\xd9\x85\xd9\x85", "\xd8\xb4\xd9\x85\xd9\x85", "\xd8\xb6\xd8\xad\xd9\x89", "\xd8\xb6\xd8\xae\xd9\x85",
  "\xd8\xb6\xd8\xae\xd9\x85", "\xd8\xb7\xd9\x85\xd8\xad", "\xd8\xb7\xd9\x85\xd8\xad", "\xd8\xb7\xd9\x85\xd9\x85", "\xd8\xb7\xd9\x85\xd9\x8a", "\xd8\xb9\xd8\xac\xd9\x85", "\xd8\xb9\xd9\x85\xd9\x85", "\xd8\xb9\xd9\x85\xd9\x85",
  "\xd8\xb9\xd9\x85\xd9\x89", "\xd8\xba\xd9\x85\xd9\x85", "\xd8\xba\xd9\x85\xd9\x8a", "\xd8\xba\xd9\x85\xd9\x89", "\xd9\x81\xd8\xae\xd9\x85", "\xd9\x81\xd8\xae\xd9\x85", "\xd9\x82\xd9\x85\xd8\xad", "\xd9\x82\xd9\x85\xd9\x85"
};

static const char *grn_nfkc170_decompose_table_efb6[] = {
  "\xd9\x84\xd8\xad\xd9\x85", "\xd9\x84\xd8\xad\xd9\x8a", "\xd9\x84\xd8\xad\xd9\x89", "\xd9\x84\xd8\xac\xd8\xac", "\xd9\x84\xd8\xac\xd8\xac", "\xd9\x84\xd8\xae\xd9\x85", "\xd9\x84\xd8\xae\xd9\x85", "\xd9\x84\xd9\x85\xd8\xad",
  "\xd9\x84\xd9\x85\xd8\xad", "\xd9\x85\xd8\xad\xd8\xac", "\xd9\x85\xd8\xad\xd9\x85", "\xd9\x85\xd8\xad\xd9\x8a", "\xd9\x85\xd8\xac\xd8\xad", "\xd9\x85\xd8\xac\xd9\x85", "\xd9\x85\xd8\xae\xd8\xac", "\xd9\x85\xd8\xae\xd9\x85",
  NULL, NULL, "\xd9\x85\xd8\xac\xd8\xae", "\xd9\x87\xd9\x85\xd8\xac", "\xd9\x87\xd9\x85\xd9\x85", "\xd9\x86\xd8\xad\xd9\x85", "\xd9\x86\xd8\xad\xd9\x89", "\xd9\x86\xd8\xac\xd9\x85",
  "\xd9\x86\xd8\xac\xd9\x85", "\xd9\x86\xd8\xac\xd9\x89", "\xd9\x86\xd9\x85\xd9\x8a", "\xd9\x86\xd9\x85\xd9\x89", "\xd9\x8a\xd9\x85\xd9\x85", "\xd9\x8a\xd9\x85\xd9\x85", "\xd8\xa8\xd8\xae\xd9\x8a", "\xd8\xaa\xd8\xac\xd9\x8a",
  "\xd8\xaa\xd8\xac\xd9\x89", "\xd8\xaa\xd8\xae\xd9\x8a", "\xd8\xaa\xd8\xae\xd9\x89", "\xd8\xaa\xd9\x85\xd9\x8a", "\xd8\xaa\xd9\x85\xd9\x89", "\xd8\xac\xd9\x85\xd9\x8a", "\xd8\xac\xd8\xad\xd9\x89", "\xd8\xac\xd9\x85\xd9\x89",
  "\xd8\xb3\xd8\xae\xd9\x89", "\xd8\xb5\xd8\xad\xd9\x8a", "\xd8\xb4\xd8\xad\xd9\x8a", "\xd8\xb6\xd8\xad\xd9\x8a", "\xd9\x84\xd8\xac\xd9\x8a", "\xd9\x84\xd9\x85\xd9\x8a", "\xd9\x8a\xd8\xad\xd9\x8a", "\xd9\x8a\xd8\xac\xd9\x8a",
  "\xd9\x8a\xd9\x85\xd9\x8a", "\xd9\x85\xd9\x85\xd9\x8a", "\xd9\x82\xd9\x85\xd9\x8a", "\xd9\x86\xd8\xad\xd9\x8a", "\xd9\x82\xd9\x85\xd8\xad", "\xd9\x84\xd8\xad\xd9\x85", "\xd8\xb9\xd9\x85\xd9\x8a", "\xd9\x83\xd9\x85\xd9\x8a",
  "\xd9\x86\xd8\xac\xd8\xad", "\xd9\x85\xd8\xae\xd9\x8a", "\xd9\x84\xd8\xac\xd9\x85", "\xd9\x83\xd9\x85\xd9\x85", "\xd9\x84\xd8\xac\xd9\x85", "\xd9\x86\xd8\xac\xd8\xad", "\xd8\xac\xd8\xad\xd9\x8a", "\xd8\xad\xd8\xac\xd9\x8a"
};

static const char *grn_nfkc170_decompose_table_efb7[] = {
  "\xd9\x85\xd8\xac\xd9\x8a", "\xd9\x81\xd9\x85\xd9\x8a", "\xd8\xa8\xd8\xad\xd9\x8a", "\xd9\x83\xd9\x85\xd9\x85", "\xd8\xb9\xd8\xac\xd9\x85", "\xd8\xb5\xd9\x85\xd9\x85", "\xd8\xb3\xd8\xae\xd9\x8a", "\xd9\x86\xd8\xac\xd9\x8a",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd8\xb5\xd9\x84\xdb\x92", "\xd9\x82\xd9\x84\xdb\x92", "\xd8\xa7\xd9\x84\xd9\x84\xd9\x87", "\xd8\xa7\xd9\x83\xd8\xa8\xd8\xb1", "\xd9\x85\xd8\xad\xd9\x85\xd8\xaf", "\xd8\xb5\xd9\x84\xd8\xb9\xd9\x85", "\xd8\xb1\xd8\xb3\xd9\x88\xd9\x84", "\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87",
  "\xd9\x88\xd8\xb3\xd9\x84\xd9\x85", "\xd8\xb5\xd9\x84\xd9\x89", "\xd8\xb5\xd9\x84\xd9\x89\x20\xd8\xa7\xd9\x84\xd9\x84\xd9\x87\x20\xd8\xb9\xd9\x84\xd9\x8a\xd9\x87\x20\xd9\x88\xd8\xb3\xd9\x84\xd9\x85", "\xd8\xac\xd9\x84\x20\xd8\xac\xd9\x84\xd8\xa7\xd9\x84\xd9\x87", "\xd8\xb1\xdb\x8c\xd8\xa7\xd9\x84"
};

static const char *grn_nfkc170_decompose_table_efb8[] = {
  "\x2c", "\xe3\x80\x81", "\xe3\x80\x82", "\x3a", "\x3b", "\x21", "\x3f", "\xe3\x80\x96",
  "\xe3\x80\x97", "\x2e\x2e\x2e", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\x2e\x2e", "\xe2\x80\x94", "\xe2\x80\x93", "\x5f", "\x5f", "\x28", "\x29", "\x7b",
  "\x7d", "\xe3\x80\x94", "\xe3\x80\x95", "\xe3\x80\x90", "\xe3\x80\x91", "\xe3\x80\x8a", "\xe3\x80\x8b", "\xe3\x80\x88"
};

static const char *grn_nfkc170_decompose_table_efb9[] = {
  "\xe3\x80\x89", "\xe3\x80\x8c", "\xe3\x80\x8d", "\xe3\x80\x8e", "\xe3\x80\x8f", NULL, NULL, "\x5b",
  "\x5d", "\xcc\x85", "\xcc\x85", "\xcc\x85", "\xcc\x85", "\x5f", "\x5f", "\x5f",
  "\x2c", "\xe3\x80\x81", "\x2e", NULL, "\x3b", "\x3a", "\x3f", "\x21",
  "\xe2\x80\x94", "\x28", "\x29", "\x7b", "\x7d", "\xe3\x80\x94", "\xe3\x80\x95", "\x23",
  "\x26", "\x2a", "\x2b", "\x2d", "\x3c", "\x3e", "\x3d", NULL,
  "\x5c", "\x24", "\x25", "\x40", NULL, NULL, NULL, NULL,
  "\xd9\x8b", "\xd9\x80\xd9\x8b", "\xd9\x8c", NULL, "\xd9\x8d", NULL, "\xd9\x8e", "\xd9\x80\xd9\x8e",
  "\xd9\x8f", "\xd9\x80\xd9\x8f", "\xd9\x90", "\xd9\x80\xd9\x90", "\xd9\x91", "\xd9\x80\xd9\x91", "\xd9\x92", "\xd9\x80\xd9\x92"
};

static const char *grn_nfkc170_decompose_table_efba[] = {
  "\xd8\xa1", "\xd8\xa2", "\xd8\xa2", "\xd8\xa3", "\xd8\xa3", "\xd8\xa4", "\xd8\xa4", "\xd8\xa5",
  "\xd8\xa5", "\xd8\xa6", "\xd8\xa6", "\xd8\xa6", "\xd8\xa6", "\xd8\xa7", "\xd8\xa7", "\xd8\xa8",
  "\xd8\xa8", "\xd8\xa8", "\xd8\xa8", "\xd8\xa9", "\xd8\xa9", "\xd8\xaa", "\xd8\xaa", "\xd8\xaa",
  "\xd8\xaa", "\xd8\xab", "\xd8\xab", "\xd8\xab", "\xd8\xab", "\xd8\xac", "\xd8\xac", "\xd8\xac",
  "\xd8\xac", "\xd8\xad", "\xd8\xad", "\xd8\xad", "\xd8\xad", "\xd8\xae", "\xd8\xae", "\xd8\xae",
  "\xd8\xae", "\xd8\xaf", "\xd8\xaf", "\xd8\xb0", "\xd8\xb0", "\xd8\xb1", "\xd8\xb1", "\xd8\xb2",
  "\xd8\xb2", "\xd8\xb3", "\xd8\xb3", "\xd8\xb3", "\xd8\xb3", "\xd8\xb4", "\xd8\xb4", "\xd8\xb4",
  "\xd8\xb4", "\xd8\xb5", "\xd8\xb5", "\xd8\xb5", "\xd8\xb5", "\xd8\xb6", "\xd8\xb6", "\xd8\xb6"
};

static const char *grn_nfkc170_decompose_table_efbb[] = {
  "\xd8\xb6", "\xd8\xb7", "\xd8\xb7", "\xd8\xb7", "\xd8\xb7", "\xd8\xb8", "\xd8\xb8", "\xd8\xb8",
  "\xd8\xb8", "\xd8\xb9", "\xd8\xb9", "\xd8\xb9", "\xd8\xb9", "\xd8\xba", "\xd8\xba", "\xd8\xba",
  "\xd8\xba", "\xd9\x81", "\xd9\x81", "\xd9\x81", "\xd9\x81", "\xd9\x82", "\xd9\x82", "\xd9\x82",
  "\xd9\x82", "\xd9\x83", "\xd9\x83", "\xd9\x83", "\xd9\x83", "\xd9\x84", "\xd9\x84", "\xd9\x84",
  "\xd9\x84", "\xd9\x85", "\xd9\x85", "\xd9\x85", "\xd9\x85", "\xd9\x86", "\xd9\x86", "\xd9\x86",
  "\xd9\x86", "\xd9\x87", "\xd9\x87", "\xd9\x87", "\xd9\x87", "\xd9\x88", "\xd9\x88", "\xd9\x89",
  "\xd9\x89", "\xd9\x8a", "\xd9\x8a", "\xd9\x8a", "\xd9\x8a", "\xd9\x84\xd8\xa2", "\xd9\x84\xd8\xa2", "\xd9\x84\xd8\xa3",
  "\xd9\x84\xd8\xa3", "\xd9\x84\xd8\xa5", "\xd9\x84\xd8\xa5", "\xd9\x84\xd8\xa7", "\xd9\x84\xd8\xa7"
};

static const char *grn_nfkc170_decompose_table_efbc[] = {
  "\x21", "\x22", "\x23", "\x24", "\x25", "\x26", "\x27", "\x28",
  "\x29", "\x2a", "\x2b", "\x2c", "\x2d", "\x2e", "\x2f", "\x30",
  "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38",
  "\x39", "\x3a", "\x3b", "\x3c", "\x3d", "\x3e", "\x3f", "\x40",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x5b", "\x5c", "\x5d", "\x5e", "\x5f"
};

static const char *grn_nfkc170_decompose_table_efbd[] = {
  "\x60", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67",
  "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f",
  "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77",
  "\x78", "\x79", "\x7a", "\x7b", "\x7c", "\x7d", "\x7e", "\xe2\xa6\x85",
  "\xe2\xa6\x86", "\xe3\x80\x82", "\xe3\x80\x8c", "\xe3\x80\x8d", "\xe3\x80\x81", "\xe3\x83\xbb", "\xe3\x83\xb2", "\xe3\x82\xa1",
  "\xe3\x82\xa3", "\xe3\x82\xa5", "\xe3\x82\xa7", "\xe3\x82\xa9", "\xe3\x83\xa3", "\xe3\x83\xa5", "\xe3\x83\xa7", "\xe3\x83\x83",
  "\xe3\x83\xbc", "\xe3\x82\xa2", "\xe3\x82\xa4", "\xe3\x82\xa6", "\xe3\x82\xa8", "\xe3\x82\xaa", "\xe3\x82\xab", "\xe3\x82\xad",
  "\xe3\x82\xaf", "\xe3\x82\xb1", "\xe3\x82\xb3", "\xe3\x82\xb5", "\xe3\x82\xb7", "\xe3\x82\xb9", "\xe3\x82\xbb", "\xe3\x82\xbd"
};

static const char *grn_nfkc170_decompose_table_efbe[] = {
  "\xe3\x82\xbf", "\xe3\x83\x81", "\xe3\x83\x84", "\xe3\x83\x86", "\xe3\x83\x88", "\xe3\x83\x8a", "\xe3\x83\x8b", "\xe3\x83\x8c",
  "\xe3\x83\x8d", "\xe3\x83\x8e", "\xe3\x83\x8f", "\xe3\x83\x92", "\xe3\x83\x95", "\xe3\x83\x98", "\xe3\x83\x9b", "\xe3\x83\x9e",
  "\xe3\x83\x9f", "\xe3\x83\xa0", "\xe3\x83\xa1", "\xe3\x83\xa2", "\xe3\x83\xa4", "\xe3\x83\xa6", "\xe3\x83\xa8", "\xe3\x83\xa9",
  "\xe3\x83\xaa", "\xe3\x83\xab", "\xe3\x83\xac", "\xe3\x83\xad", "\xe3\x83\xaf", "\xe3\x83\xb3", "\xe3\x82\x99", "\xe3\x82\x9a",
  "\xe1\x85\xa0", "\xe1\x84\x80", "\xe1\x84\x81", "\xe1\x86\xaa", "\xe1\x84\x82", "\xe1\x86\xac", "\xe1\x86\xad", "\xe1\x84\x83",
  "\xe1\x84\x84", "\xe1\x84\x85", "\xe1\x86\xb0", "\xe1\x86\xb1", "\xe1\x86\xb2", "\xe1\x86\xb3", "\xe1\x86\xb4", "\xe1\x86\xb5",
  "\xe1\x84\x9a", "\xe1\x84\x86", "\xe1\x84\x87", "\xe1\x84\x88", "\xe1\x84\xa1", "\xe1\x84\x89", "\xe1\x84\x8a", "\xe1\x84\x8b",
  "\xe1\x84\x8c", "\xe1\x84\x8d", "\xe1\x84\x8e", "\xe1\x84\x8f", "\xe1\x84\x90", "\xe1\x84\x91", "\xe1\x84\x92"
};

static const char *grn_nfkc170_decompose_table_efbf[] = {
  "\xe1\x85\xa1", "\xe1\x85\xa2", "\xe1\x85\xa3", "\xe1\x85\xa4", "\xe1\x85\xa5", "\xe1\x85\xa6", NULL, NULL,
  "\xe1\x85\xa7", "\xe1\x85\xa8", "\xe1\x85\xa9", "\xe1\x85\xaa", "\xe1\x85\xab", "\xe1\x85\xac", NULL, NULL,
  "\xe1\x85\xad", "\xe1\x85\xae", "\xe1\x85\xaf", "\xe1\x85\xb0", "\xe1\x85\xb1", "\xe1\x85\xb2", NULL, NULL,
  "\xe1\x85\xb3", "\xe1\x85\xb4", "\xe1\x85\xb5", NULL, NULL, NULL, "\xc2\xa2", "\xc2\xa3",
  "\xc2\xac", "\xcc\x84", "\xc2\xa6", "\xc2\xa5", "\xe2\x82\xa9", NULL, "\xe2\x94\x82", "\xe2\x86\x90",
  "\xe2\x86\x91", "\xe2\x86\x92", "\xe2\x86\x93", "\xe2\x96\xa0", "\xe2\x97\x8b"
};

static const char *grn_nfkc170_decompose_table_f09090[] = {
  "\xf0\x90\x90\xa8", "\xf0\x90\x90\xa9", "\xf0\x90\x90\xaa", "\xf0\x90\x90\xab", "\xf0\x90\x90\xac", "\xf0\x90\x90\xad", "\xf0\x90\x90\xae", "\xf0\x90\x90\xaf",
  "\xf0\x90\x90\xb0", "\xf0\x90\x90\xb1", "\xf0\x90\x90\xb2", "\xf0\x90\x90\xb3", "\xf0\x90\x90\xb4", "\xf0\x90\x90\xb5", "\xf0\x90\x90\xb6", "\xf0\x90\x90\xb7",
  "\xf0\x90\x90\xb8", "\xf0\x90\x90\xb9", "\xf0\x90\x90\xba", "\xf0\x90\x90\xbb", "\xf0\x90\x90\xbc", "\xf0\x90\x90\xbd", "\xf0\x90\x90\xbe", "\xf0\x90\x90\xbf",
  "\xf0\x90\x91\x80", "\xf0\x90\x91\x81", "\xf0\x90\x91\x82", "\xf0\x90\x91\x83", "\xf0\x90\x91\x84", "\xf0\x90\x91\x85", "\xf0\x90\x91\x86", "\xf0\x90\x91\x87",
  "\xf0\x90\x91\x88", "\xf0\x90\x91\x89", "\xf0\x90\x91\x8a", "\xf0\x90\x91\x8b", "\xf0\x90\x91\x8c", "\xf0\x90\x91\x8d", "\xf0\x90\x91\x8e", "\xf0\x90\x91\x8f"
};

static const char *grn_nfkc170_decompose_table_f09092[] = {
  "\xf0\x90\x93\x98", "\xf0\x90\x93\x99", "\xf0\x90\x93\x9a", "\xf0\x90\x93\x9b", "\xf0\x90\x93\x9c", "\xf0\x90\x93\x9d", "\xf0\x90\x93\x9e", "\xf0\x90\x93\x9f",
  "\xf0\x90\x93\xa0", "\xf0\x90\x93\xa1", "\xf0\x90\x93\xa2", "\xf0\x90\x93\xa3", "\xf0\x90\x93\xa4", "\xf0\x90\x93\xa5", "\xf0\x90\x93\xa6", "\xf0\x90\x93\xa7"
};

static const char *grn_nfkc170_decompose_table_f09093[] = {
  "\xf0\x90\x93\xa8", "\xf0\x90\x93\xa9", "\xf0\x90\x93\xaa", "\xf0\x90\x93\xab", "\xf0\x90\x93\xac", "\xf0\x90\x93\xad", "\xf0\x90\x93\xae", "\xf0\x90\x93\xaf",
  "\xf0\x90\x93\xb0", "\xf0\x90\x93\xb1", "\xf0\x90\x93\xb2", "\xf0\x90\x93\xb3", "\xf0\x90\x93\xb4", "\xf0\x90\x93\xb5", "\xf0\x90\x93\xb6", "\xf0\x90\x93\xb7",
  "\xf0\x90\x93\xb8", "\xf0\x90\x93\xb9", "\xf0\x90\x93\xba", "\xf0\x90\x93\xbb"
};

static const char *grn_nfkc170_decompose_table_f09095[] = {
  "\xf0\x90\x96\x97", "\xf0\x90\x96\x98", "\xf0\x90\x96\x99", "\xf0\x90\x96\x9a", "\xf0\x90\x96\x9b", "\xf0\x90\x96\x9c", "\xf0\x90\x96\x9d", "\xf0\x90\x96\x9e",
  "\xf0\x90\x96\x9f", "\xf0\x90\x96\xa0", "\xf0\x90\x96\xa1", NULL, "\xf0\x90\x96\xa3", "\xf0\x90\x96\xa4", "\xf0\x90\x96\xa5", "\xf0\x90\x96\xa6"
};

static const char *grn_nfkc170_decompose_table_f09096[] = {
  "\xf0\x90\x96\xa7", "\xf0\x90\x96\xa8", "\xf0\x90\x96\xa9", "\xf0\x90\x96\xaa", "\xf0\x90\x96\xab", "\xf0\x90\x96\xac", "\xf0\x90\x96\xad", "\xf0\x90\x96\xae",
  "\xf0\x90\x96\xaf", "\xf0\x90\x96\xb0", "\xf0\x90\x96\xb1", NULL, "\xf0\x90\x96\xb3", "\xf0\x90\x96\xb4", "\xf0\x90\x96\xb5", "\xf0\x90\x96\xb6",
  "\xf0\x90\x96\xb7", "\xf0\x90\x96\xb8", "\xf0\x90\x96\xb9", NULL, "\xf0\x90\x96\xbb", "\xf0\x90\x96\xbc"
};

static const char *grn_nfkc170_decompose_table_f0909e[] = {
  "\xcb\x90", "\xcb\x91", "\xc3\xa6", "\xca\x99", "\xc9\x93", NULL, "\xca\xa3", "\xea\xad\xa6",
  "\xca\xa5", "\xca\xa4", "\xc9\x96", "\xc9\x97", "\xe1\xb6\x91", "\xc9\x98", "\xc9\x9e", "\xca\xa9",
  "\xc9\xa4", "\xc9\xa2", "\xc9\xa0", "\xca\x9b", "\xc4\xa7", "\xca\x9c", "\xc9\xa7", "\xca\x84",
  "\xca\xaa", "\xca\xab", "\xc9\xac", "\xf0\x9d\xbc\x84", "\xea\x9e\x8e", "\xc9\xae", "\xf0\x9d\xbc\x85", "\xca\x8e",
  "\xf0\x9d\xbc\x86", "\xc3\xb8", "\xc9\xb6", "\xc9\xb7", "\x71", "\xc9\xba", "\xf0\x9d\xbc\x88", "\xc9\xbd",
  "\xc9\xbe", "\xca\x80", "\xca\xa8", "\xca\xa6", "\xea\xad\xa7", "\xca\xa7", "\xca\x88", "\xe2\xb1\xb1",
  NULL, "\xca\x8f", "\xca\xa1", "\xca\xa2", "\xca\x98", "\xc7\x80", "\xc7\x81", "\xc7\x82",
  "\xf0\x9d\xbc\x8a", "\xf0\x9d\xbc\x9e"
};

static const char *grn_nfkc170_decompose_table_f090b2[] = {
  "\xf0\x90\xb3\x80", "\xf0\x90\xb3\x81", "\xf0\x90\xb3\x82", "\xf0\x90\xb3\x83", "\xf0\x90\xb3\x84", "\xf0\x90\xb3\x85", "\xf0\x90\xb3\x86", "\xf0\x90\xb3\x87",
  "\xf0\x90\xb3\x88", "\xf0\x90\xb3\x89", "\xf0\x90\xb3\x8a", "\xf0\x90\xb3\x8b", "\xf0\x90\xb3\x8c", "\xf0\x90\xb3\x8d", "\xf0\x90\xb3\x8e", "\xf0\x90\xb3\x8f",
  "\xf0\x90\xb3\x90", "\xf0\x90\xb3\x91", "\xf0\x90\xb3\x92", "\xf0\x90\xb3\x93", "\xf0\x90\xb3\x94", "\xf0\x90\xb3\x95", "\xf0\x90\xb3\x96", "\xf0\x90\xb3\x97",
  "\xf0\x90\xb3\x98", "\xf0\x90\xb3\x99", "\xf0\x90\xb3\x9a", "\xf0\x90\xb3\x9b", "\xf0\x90\xb3\x9c", "\xf0\x90\xb3\x9d", "\xf0\x90\xb3\x9e", "\xf0\x90\xb3\x9f",
  "\xf0\x90\xb3\xa0", "\xf0\x90\xb3\xa1", "\xf0\x90\xb3\xa2", "\xf0\x90\xb3\xa3", "\xf0\x90\xb3\xa4", "\xf0\x90\xb3\xa5", "\xf0\x90\xb3\xa6", "\xf0\x90\xb3\xa7",
  "\xf0\x90\xb3\xa8", "\xf0\x90\xb3\xa9", "\xf0\x90\xb3\xaa", "\xf0\x90\xb3\xab", "\xf0\x90\xb3\xac", "\xf0\x90\xb3\xad", "\xf0\x90\xb3\xae", "\xf0\x90\xb3\xaf",
  "\xf0\x90\xb3\xb0", "\xf0\x90\xb3\xb1", "\xf0\x90\xb3\xb2"
};

static const char *grn_nfkc170_decompose_table_f091a2[] = {
  "\xf0\x91\xa3\x80", "\xf0\x91\xa3\x81", "\xf0\x91\xa3\x82", "\xf0\x91\xa3\x83", "\xf0\x91\xa3\x84", "\xf0\x91\xa3\x85", "\xf0\x91\xa3\x86", "\xf0\x91\xa3\x87",
  "\xf0\x91\xa3\x88", "\xf0\x91\xa3\x89", "\xf0\x91\xa3\x8a", "\xf0\x91\xa3\x8b", "\xf0\x91\xa3\x8c", "\xf0\x91\xa3\x8d", "\xf0\x91\xa3\x8e", "\xf0\x91\xa3\x8f",
  "\xf0\x91\xa3\x90", "\xf0\x91\xa3\x91", "\xf0\x91\xa3\x92", "\xf0\x91\xa3\x93", "\xf0\x91\xa3\x94", "\xf0\x91\xa3\x95", "\xf0\x91\xa3\x96", "\xf0\x91\xa3\x97",
  "\xf0\x91\xa3\x98", "\xf0\x91\xa3\x99", "\xf0\x91\xa3\x9a", "\xf0\x91\xa3\x9b", "\xf0\x91\xa3\x9c", "\xf0\x91\xa3\x9d", "\xf0\x91\xa3\x9e", "\xf0\x91\xa3\x9f"
};

static const char *grn_nfkc170_decompose_table_f096b9[] = {
  "\xf0\x96\xb9\xa0", "\xf0\x96\xb9\xa1", "\xf0\x96\xb9\xa2", "\xf0\x96\xb9\xa3", "\xf0\x96\xb9\xa4", "\xf0\x96\xb9\xa5", "\xf0\x96\xb9\xa6", "\xf0\x96\xb9\xa7",
  "\xf0\x96\xb9\xa8", "\xf0\x96\xb9\xa9", "\xf0\x96\xb9\xaa", "\xf0\x96\xb9\xab", "\xf0\x96\xb9\xac", "\xf0\x96\xb9\xad", "\xf0\x96\xb9\xae", "\xf0\x96\xb9\xaf",
  "\xf0\x96\xb9\xb0", "\xf0\x96\xb9\xb1", "\xf0\x96\xb9\xb2", "\xf0\x96\xb9\xb3", "\xf0\x96\xb9\xb4", "\xf0\x96\xb9\xb5", "\xf0\x96\xb9\xb6", "\xf0\x96\xb9\xb7",
  "\xf0\x96\xb9\xb8", "\xf0\x96\xb9\xb9", "\xf0\x96\xb9\xba", "\xf0\x96\xb9\xbb", "\xf0\x96\xb9\xbc", "\xf0\x96\xb9\xbd", "\xf0\x96\xb9\xbe", "\xf0\x96\xb9\xbf"
};

static const char *grn_nfkc170_decompose_table_f09cb3[] = {
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35",
  "\x36", "\x37", "\x38", "\x39"
};

static const char *grn_nfkc170_decompose_table_f09d85[] = {
  "\xf0\x9d\x85\x97\xf0\x9d\x85\xa5", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xae", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb0", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb1", "\xf0\x9d\x85\x98\xf0\x9d\x85\xa5\xf0\x9d\x85\xb2"
};

static const char *grn_nfkc170_decompose_table_f09d86[] = {
  "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5", "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5", "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xae", "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xae", "\xf0\x9d\x86\xb9\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf"
};

static const char *grn_nfkc170_decompose_table_f09d90[] = {
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64",
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c"
};

static const char *grn_nfkc170_decompose_table_f09d91[] = {
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", NULL, "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78"
};

static const char *grn_nfkc170_decompose_table_f09d92[] = {
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", NULL, "\x63", "\x64",
  NULL, NULL, "\x67", NULL, NULL, "\x6a", "\x6b", NULL,
  NULL, "\x6e", "\x6f", "\x70", "\x71", NULL, "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", NULL, "\x66", NULL, "\x68", "\x69", "\x6a"
};

static const char *grn_nfkc170_decompose_table_f09d93[] = {
  "\x6b", "\x6c", "\x6d", "\x6e", NULL, "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76"
};

static const char *grn_nfkc170_decompose_table_f09d94[] = {
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", NULL, "\x64",
  "\x65", "\x66", "\x67", NULL, NULL, "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", NULL, "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", NULL, "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", NULL, "\x64", "\x65", "\x66", "\x67"
};

static const char *grn_nfkc170_decompose_table_f09d95[] = {
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", NULL, "\x6f", NULL,
  NULL, NULL, "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", NULL, "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64",
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74"
};

static const char *grn_nfkc170_decompose_table_f09d96[] = {
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66"
};

static const char *grn_nfkc170_decompose_table_f09d97[] = {
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64",
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72"
};

static const char *grn_nfkc170_decompose_table_f09d98[] = {
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70",
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64"
};

static const char *grn_nfkc170_decompose_table_f09d99[] = {
  "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c",
  "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74",
  "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a", "\x61", "\x62",
  "\x63", "\x64", "\x65", "\x66", "\x67", "\x68", "\x69", "\x6a",
  "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70", "\x71", "\x72",
  "\x73", "\x74", "\x75", "\x76", "\x77", "\x78", "\x79", "\x7a",
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70"
};

static const char *grn_nfkc170_decompose_table_f09d9a[] = {
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x61", "\x62", "\x63", "\x64", "\x65", "\x66",
  "\x67", "\x68", "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e",
  "\x6f", "\x70", "\x71", "\x72", "\x73", "\x74", "\x75", "\x76",
  "\x77", "\x78", "\x79", "\x7a", "\xc4\xb1", "\xc8\xb7", NULL, NULL,
  "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8",
  "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80",
  "\xcf\x81", "\xce\xb8", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88"
};

static const char *grn_nfkc170_decompose_table_f09d9b[] = {
  "\xcf\x89", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6",
  "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe",
  "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86",
  "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86",
  "\xcf\x81", "\xcf\x80", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6",
  "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe",
  "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xce\xb8", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86",
  "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4"
};

static const char *grn_nfkc170_decompose_table_f09d9c[] = {
  "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc",
  "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84",
  "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8",
  "\xce\xba", "\xcf\x86", "\xcf\x81", "\xcf\x80", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4",
  "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc",
  "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xce\xb8", "\xcf\x83", "\xcf\x84",
  "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2",
  "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba"
};

static const char *grn_nfkc170_decompose_table_f09d9d[] = {
  "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82",
  "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82",
  "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86", "\xcf\x81", "\xcf\x80", "\xce\xb1", "\xce\xb2",
  "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba",
  "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xce\xb8",
  "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x87",
  "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8",
  "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80"
};

static const char *grn_nfkc170_decompose_table_f09d9e[] = {
  "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88",
  "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86", "\xcf\x81", "\xcf\x80",
  "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6", "\xce\xb7", "\xce\xb8",
  "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe", "\xce\xbf", "\xcf\x80",
  "\xcf\x81", "\xce\xb8", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86", "\xcf\x87", "\xcf\x88",
  "\xcf\x89", "\xe2\x88\x87", "\xce\xb1", "\xce\xb2", "\xce\xb3", "\xce\xb4", "\xce\xb5", "\xce\xb6",
  "\xce\xb7", "\xce\xb8", "\xce\xb9", "\xce\xba", "\xce\xbb", "\xce\xbc", "\xce\xbd", "\xce\xbe",
  "\xce\xbf", "\xcf\x80", "\xcf\x81", "\xcf\x82", "\xcf\x83", "\xcf\x84", "\xcf\x85", "\xcf\x86"
};

static const char *grn_nfkc170_decompose_table_f09d9f[] = {
  "\xcf\x87", "\xcf\x88", "\xcf\x89", "\xe2\x88\x82", "\xce\xb5", "\xce\xb8", "\xce\xba", "\xcf\x86",
  "\xcf\x81", "\xcf\x80", "\xcf\x9d", "\xcf\x9d", NULL, NULL, "\x30", "\x31",
  "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39",
  "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37",
  "\x38", "\x39", "\x30", "\x31", "\x32", "\x33", "\x34", "\x35",
  "\x36", "\x37", "\x38", "\x39", "\x30", "\x31", "\x32", "\x33",
  "\x34", "\x35", "\x36", "\x37", "\x38", "\x39", "\x30", "\x31",
  "\x32", "\x33", "\x34", "\x35", "\x36", "\x37", "\x38", "\x39"
};

static const char *grn_nfkc170_decompose_table_f09e80[] = {
  "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6", "\xd0\xb7",
  "\xd0\xb8", "\xd0\xba", "\xd0\xbb", "\xd0\xbc", "\xd0\xbe", "\xd0\xbf", "\xd1\x80", "\xd1\x81"
};

static const char *grn_nfkc170_decompose_table_f09e81[] = {
  "\xd1\x82", "\xd1\x83", "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x8b",
  "\xd1\x8d", "\xd1\x8e", "\xea\x9a\x89", "\xd3\x99", "\xd1\x96", "\xd1\x98", "\xd3\xa9", "\xd2\xaf",
  "\xd3\x8f", "\xd0\xb0", "\xd0\xb1", "\xd0\xb2", "\xd0\xb3", "\xd0\xb4", "\xd0\xb5", "\xd0\xb6",
  "\xd0\xb7", "\xd0\xb8", "\xd0\xba", "\xd0\xbb", "\xd0\xbe", "\xd0\xbf", "\xd1\x81", "\xd1\x83",
  "\xd1\x84", "\xd1\x85", "\xd1\x86", "\xd1\x87", "\xd1\x88", "\xd1\x8a", "\xd1\x8b", "\xd2\x91",
  "\xd1\x96", "\xd1\x95", "\xd1\x9f", "\xd2\xab", "\xea\x99\x91", "\xd2\xb1"
};

static const char *grn_nfkc170_decompose_table_f09ea4[] = {
  "\xf0\x9e\xa4\xa2", "\xf0\x9e\xa4\xa3", "\xf0\x9e\xa4\xa4", "\xf0\x9e\xa4\xa5", "\xf0\x9e\xa4\xa6", "\xf0\x9e\xa4\xa7", "\xf0\x9e\xa4\xa8", "\xf0\x9e\xa4\xa9",
  "\xf0\x9e\xa4\xaa", "\xf0\x9e\xa4\xab", "\xf0\x9e\xa4\xac", "\xf0\x9e\xa4\xad", "\xf0\x9e\xa4\xae", "\xf0\x9e\xa4\xaf", "\xf0\x9e\xa4\xb0", "\xf0\x9e\xa4\xb1",
  "\xf0\x9e\xa4\xb2", "\xf0\x9e\xa4\xb3", "\xf0\x9e\xa4\xb4", "\xf0\x9e\xa4\xb5", "\xf0\x9e\xa4\xb6", "\xf0\x9e\xa4\xb7", "\xf0\x9e\xa4\xb8", "\xf0\x9e\xa4\xb9",
  "\xf0\x9e\xa4\xba", "\xf0\x9e\xa4\xbb", "\xf0\x9e\xa4\xbc", "\xf0\x9e\xa4\xbd", "\xf0\x9e\xa4\xbe", "\xf0\x9e\xa4\xbf", "\xf0\x9e\xa5\x80", "\xf0\x9e\xa5\x81",
  "\xf0\x9e\xa5\x82", "\xf0\x9e\xa5\x83"
};

static const char *grn_nfkc170_decompose_table_f09eb8[] = {
  "\xd8\xa7", "\xd8\xa8", "\xd8\xac", "\xd8\xaf", NULL, "\xd9\x88", "\xd8\xb2", "\xd8\xad",
  "\xd8\xb7", "\xd9\x8a", "\xd9\x83", "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd8\xb3", "\xd8\xb9",
  "\xd9\x81", "\xd8\xb5", "\xd9\x82", "\xd8\xb1", "\xd8\xb4", "\xd8\xaa", "\xd8\xab", "\xd8\xae",
  "\xd8\xb0", "\xd8\xb6", "\xd8\xb8", "\xd8\xba", "\xd9\xae", "\xda\xba", "\xda\xa1", "\xd9\xaf",
  NULL, "\xd8\xa8", "\xd8\xac", NULL, "\xd9\x87", NULL, NULL, "\xd8\xad",
  NULL, "\xd9\x8a", "\xd9\x83", "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd8\xb3", "\xd8\xb9",
  "\xd9\x81", "\xd8\xb5", "\xd9\x82", NULL, "\xd8\xb4", "\xd8\xaa", "\xd8\xab", "\xd8\xae",
  NULL, "\xd8\xb6", NULL, "\xd8\xba"
};

static const char *grn_nfkc170_decompose_table_f09eb9[] = {
  "\xd8\xac", NULL, NULL, NULL, NULL, "\xd8\xad", NULL, "\xd9\x8a",
  NULL, "\xd9\x84", NULL, "\xd9\x86", "\xd8\xb3", "\xd8\xb9", NULL, "\xd8\xb5",
  "\xd9\x82", NULL, "\xd8\xb4", NULL, NULL, "\xd8\xae", NULL, "\xd8\xb6",
  NULL, "\xd8\xba", NULL, "\xda\xba", NULL, "\xd9\xaf", NULL, "\xd8\xa8",
  "\xd8\xac", NULL, "\xd9\x87", NULL, NULL, "\xd8\xad", "\xd8\xb7", "\xd9\x8a",
  "\xd9\x83", NULL, "\xd9\x85", "\xd9\x86", "\xd8\xb3", "\xd8\xb9", "\xd9\x81", "\xd8\xb5",
  "\xd9\x82", NULL, "\xd8\xb4", "\xd8\xaa", "\xd8\xab", "\xd8\xae", NULL, "\xd8\xb6",
  "\xd8\xb8", "\xd8\xba", "\xd9\xae", NULL, "\xda\xa1"
};

static const char *grn_nfkc170_decompose_table_f09eba[] = {
  "\xd8\xa7", "\xd8\xa8", "\xd8\xac", "\xd8\xaf", "\xd9\x87", "\xd9\x88", "\xd8\xb2", "\xd8\xad",
  "\xd8\xb7", "\xd9\x8a", NULL, "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd8\xb3", "\xd8\xb9",
  "\xd9\x81", "\xd8\xb5", "\xd9\x82", "\xd8\xb1", "\xd8\xb4", "\xd8\xaa", "\xd8\xab", "\xd8\xae",
  "\xd8\xb0", "\xd8\xb6", "\xd8\xb8", "\xd8\xba", NULL, NULL, NULL, NULL,
  NULL, "\xd8\xa8", "\xd8\xac", "\xd8\xaf", NULL, "\xd9\x88", "\xd8\xb2", "\xd8\xad",
  "\xd8\xb7", "\xd9\x8a", NULL, "\xd9\x84", "\xd9\x85", "\xd9\x86", "\xd8\xb3", "\xd8\xb9",
  "\xd9\x81", "\xd8\xb5", "\xd9\x82", "\xd8\xb1", "\xd8\xb4", "\xd8\xaa", "\xd8\xab", "\xd8\xae",
  "\xd8\xb0", "\xd8\xb6", "\xd8\xb8", "\xd8\xba"
};

static const char *grn_nfkc170_decompose_table_f09f84[] = {
  "\x30\x2e", "\x30\x2c", "\x31\x2c", "\x32\x2c", "\x33\x2c", "\x34\x2c", "\x35\x2c", "\x36\x2c",
  "\x37\x2c", "\x38\x2c", "\x39\x2c", NULL, NULL, NULL, NULL, NULL,
  "\x28\x61\x29", "\x28\x62\x29", "\x28\x63\x29", "\x28\x64\x29", "\x28\x65\x29", "\x28\x66\x29", "\x28\x67\x29", "\x28\x68\x29",
  "\x28\x69\x29", "\x28\x6a\x29", "\x28\x6b\x29", "\x28\x6c\x29", "\x28\x6d\x29", "\x28\x6e\x29", "\x28\x6f\x29", "\x28\x70\x29",
  "\x28\x71\x29", "\x28\x72\x29", "\x28\x73\x29", "\x28\x74\x29", "\x28\x75\x29", "\x28\x76\x29", "\x28\x77\x29", "\x28\x78\x29",
  "\x28\x79\x29", "\x28\x7a\x29", "\xe3\x80\x94\x73\xe3\x80\x95", "\x63", "\x72", "\x63\x64", "\x77\x7a", NULL,
  "\x61", "\x62", "\x63", "\x64", "\x65", "\x66", "\x67", "\x68",
  "\x69", "\x6a", "\x6b", "\x6c", "\x6d", "\x6e", "\x6f", "\x70"
};

static const char *grn_nfkc170_decompose_table_f09f85[] = {
  "\x71", "\x72", "\x73", "\x74", "\x75", "\x76", "\x77", "\x78",
  "\x79", "\x7a", "\x68\x76", "\x6d\x76", "\x73\x64", "\x73\x73", "\x70\x70\x76", "\x77\x63",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\x6d\x63", "\x6d\x64", "\x6d\x72"
};

static const char *grn_nfkc170_decompose_table_f09f88[] = {
  "\xe3\x81\xbb\xe3\x81\x8b", "\xe3\x82\xb3\xe3\x82\xb3", "\xe3\x82\xb5", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe6\x89\x8b", "\xe5\xad\x97", "\xe5\x8f\x8c", "\xe3\x83\x87", "\xe4\xba\x8c", "\xe5\xa4\x9a", "\xe8\xa7\xa3", "\xe5\xa4\xa9",
  "\xe4\xba\xa4", "\xe6\x98\xa0", "\xe7\x84\xa1", "\xe6\x96\x99", "\xe5\x89\x8d", "\xe5\xbe\x8c", "\xe5\x86\x8d", "\xe6\x96\xb0",
  "\xe5\x88\x9d", "\xe7\xb5\x82", "\xe7\x94\x9f", "\xe8\xb2\xa9", "\xe5\xa3\xb0", "\xe5\x90\xb9", "\xe6\xbc\x94", "\xe6\x8a\x95",
  "\xe6\x8d\x95", "\xe4\xb8\x80", "\xe4\xb8\x89", "\xe9\x81\x8a", "\xe5\xb7\xa6", "\xe4\xb8\xad", "\xe5\x8f\xb3", "\xe6\x8c\x87",
  "\xe8\xb5\xb0", "\xe6\x89\x93", "\xe7\xa6\x81", "\xe7\xa9\xba", "\xe5\x90\x88", "\xe6\xba\x80", "\xe6\x9c\x89", "\xe6\x9c\x88",
  "\xe7\x94\xb3", "\xe5\x89\xb2", "\xe5\x96\xb6", "\xe9\x85\x8d"
};

static const char *grn_nfkc170_decompose_table_f09f89[] = {
  "\xe3\x80\x94\xe6\x9c\xac\xe3\x80\x95", "\xe3\x80\x94\xe4\xb8\x89\xe3\x80\x95", "\xe3\x80\x94\xe4\xba\x8c\xe3\x80\x95", "\xe3\x80\x94\xe5\xae\x89\xe3\x80\x95", "\xe3\x80\x94\xe7\x82\xb9\xe3\x80\x95", "\xe3\x80\x94\xe6\x89\x93\xe3\x80\x95", "\xe3\x80\x94\xe7\x9b\x97\xe3\x80\x95", "\xe3\x80\x94\xe5\x8b\x9d\xe3\x80\x95",
  "\xe3\x80\x94\xe6\x95\x97\xe3\x80\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe5\xbe\x97", "\xe5\x8f\xaf"
};

static const char *grn_nfkc170_decompose_table_f09faf[] = {
  "\x30", "\x31", "\x32", "\x33", "\x34", "\x35", "\x36", "\x37",
  "\x38", "\x39"
};

static const char *grn_nfkc170_decompose_table_f0afa0[] = {
  "\xe4\xb8\xbd", "\xe4\xb8\xb8", "\xe4\xb9\x81", "\xf0\xa0\x84\xa2", "\xe4\xbd\xa0", "\xe4\xbe\xae", "\xe4\xbe\xbb", "\xe5\x80\x82",
  "\xe5\x81\xba", "\xe5\x82\x99", "\xe5\x83\xa7", "\xe5\x83\x8f", "\xe3\x92\x9e", "\xf0\xa0\x98\xba", "\xe5\x85\x8d", "\xe5\x85\x94",
  "\xe5\x85\xa4", "\xe5\x85\xb7", "\xf0\xa0\x94\x9c", "\xe3\x92\xb9", "\xe5\x85\xa7", "\xe5\x86\x8d", "\xf0\xa0\x95\x8b", "\xe5\x86\x97",
  "\xe5\x86\xa4", "\xe4\xbb\x8c", "\xe5\x86\xac", "\xe5\x86\xb5", "\xf0\xa9\x87\x9f", "\xe5\x87\xb5", "\xe5\x88\x83", "\xe3\x93\x9f",
  "\xe5\x88\xbb", "\xe5\x89\x86", "\xe5\x89\xb2", "\xe5\x89\xb7", "\xe3\x94\x95", "\xe5\x8b\x87", "\xe5\x8b\x89", "\xe5\x8b\xa4",
  "\xe5\x8b\xba", "\xe5\x8c\x85", "\xe5\x8c\x86", "\xe5\x8c\x97", "\xe5\x8d\x89", "\xe5\x8d\x91", "\xe5\x8d\x9a", "\xe5\x8d\xb3",
  "\xe5\x8d\xbd", "\xe5\x8d\xbf", "\xe5\x8d\xbf", "\xe5\x8d\xbf", "\xf0\xa0\xa8\xac", "\xe7\x81\xb0", "\xe5\x8f\x8a", "\xe5\x8f\x9f",
  "\xf0\xa0\xad\xa3", "\xe5\x8f\xab", "\xe5\x8f\xb1", "\xe5\x90\x86", "\xe5\x92\x9e", "\xe5\x90\xb8", "\xe5\x91\x88", "\xe5\x91\xa8"
};

static const char *grn_nfkc170_decompose_table_f0afa1[] = {
  "\xe5\x92\xa2", "\xe5\x93\xb6", "\xe5\x94\x90", "\xe5\x95\x93", "\xe5\x95\xa3", "\xe5\x96\x84", "\xe5\x96\x84", "\xe5\x96\x99",
  "\xe5\x96\xab", "\xe5\x96\xb3", "\xe5\x97\x82", "\xe5\x9c\x96", "\xe5\x98\x86", "\xe5\x9c\x97", "\xe5\x99\x91", "\xe5\x99\xb4",
  "\xe5\x88\x87", "\xe5\xa3\xae", "\xe5\x9f\x8e", "\xe5\x9f\xb4", "\xe5\xa0\x8d", "\xe5\x9e\x8b", "\xe5\xa0\xb2", "\xe5\xa0\xb1",
  "\xe5\xa2\xac", "\xf0\xa1\x93\xa4", "\xe5\xa3\xb2", "\xe5\xa3\xb7", "\xe5\xa4\x86", "\xe5\xa4\x9a", "\xe5\xa4\xa2", "\xe5\xa5\xa2",
  "\xf0\xa1\x9a\xa8", "\xf0\xa1\x9b\xaa", "\xe5\xa7\xac", "\xe5\xa8\x9b", "\xe5\xa8\xa7", "\xe5\xa7\x98", "\xe5\xa9\xa6", "\xe3\x9b\xae",
  "\xe3\x9b\xbc", "\xe5\xac\x88", "\xe5\xac\xbe", "\xe5\xac\xbe", "\xf0\xa1\xa7\x88", "\xe5\xaf\x83", "\xe5\xaf\x98", "\xe5\xaf\xa7",
  "\xe5\xaf\xb3", "\xf0\xa1\xac\x98", "\xe5\xaf\xbf", "\xe5\xb0\x86", "\xe5\xbd\x93", "\xe5\xb0\xa2", "\xe3\x9e\x81", "\xe5\xb1\xa0",
  "\xe5\xb1\xae", "\xe5\xb3\x80", "\xe5\xb2\x8d", "\xf0\xa1\xb7\xa4", "\xe5\xb5\x83", "\xf0\xa1\xb7\xa6", "\xe5\xb5\xae", "\xe5\xb5\xab"
};

static const char *grn_nfkc170_decompose_table_f0afa2[] = {
  "\xe5\xb5\xbc", "\xe5\xb7\xa1", "\xe5\xb7\xa2", "\xe3\xa0\xaf", "\xe5\xb7\xbd", "\xe5\xb8\xa8", "\xe5\xb8\xbd", "\xe5\xb9\xa9",
  "\xe3\xa1\xa2", "\xf0\xa2\x86\x83", "\xe3\xa1\xbc", "\xe5\xba\xb0", "\xe5\xba\xb3", "\xe5\xba\xb6", "\xe5\xbb\x8a", "\xf0\xaa\x8e\x92",
  "\xe5\xbb\xbe", "\xf0\xa2\x8c\xb1", "\xf0\xa2\x8c\xb1", "\xe8\x88\x81", "\xe5\xbc\xa2", "\xe5\xbc\xa2", "\xe3\xa3\x87", "\xf0\xa3\x8a\xb8",
  "\xf0\xa6\x87\x9a", "\xe5\xbd\xa2", "\xe5\xbd\xab", "\xe3\xa3\xa3", "\xe5\xbe\x9a", "\xe5\xbf\x8d", "\xe5\xbf\x97", "\xe5\xbf\xb9",
  "\xe6\x82\x81", "\xe3\xa4\xba", "\xe3\xa4\x9c", "\xe6\x82\x94", "\xf0\xa2\x9b\x94", "\xe6\x83\x87", "\xe6\x85\x88", "\xe6\x85\x8c",
  "\xe6\x85\x8e", "\xe6\x85\x8c", "\xe6\x85\xba", "\xe6\x86\x8e", "\xe6\x86\xb2", "\xe6\x86\xa4", "\xe6\x86\xaf", "\xe6\x87\x9e",
  "\xe6\x87\xb2", "\xe6\x87\xb6", "\xe6\x88\x90", "\xe6\x88\x9b", "\xe6\x89\x9d", "\xe6\x8a\xb1", "\xe6\x8b\x94", "\xe6\x8d\x90",
  "\xf0\xa2\xac\x8c", "\xe6\x8c\xbd", "\xe6\x8b\xbc", "\xe6\x8d\xa8", "\xe6\x8e\x83", "\xe6\x8f\xa4", "\xf0\xa2\xaf\xb1", "\xe6\x90\xa2"
};

static const char *grn_nfkc170_decompose_table_f0afa3[] = {
  "\xe6\x8f\x85", "\xe6\x8e\xa9", "\xe3\xa8\xae", "\xe6\x91\xa9", "\xe6\x91\xbe", "\xe6\x92\x9d", "\xe6\x91\xb7", "\xe3\xa9\xac",
  "\xe6\x95\x8f", "\xe6\x95\xac", "\xf0\xa3\x80\x8a", "\xe6\x97\xa3", "\xe6\x9b\xb8", "\xe6\x99\x89", "\xe3\xac\x99", "\xe6\x9a\x91",
  "\xe3\xac\x88", "\xe3\xab\xa4", "\xe5\x86\x92", "\xe5\x86\x95", "\xe6\x9c\x80", "\xe6\x9a\x9c", "\xe8\x82\xad", "\xe4\x8f\x99",
  "\xe6\x9c\x97", "\xe6\x9c\x9b", "\xe6\x9c\xa1", "\xe6\x9d\x9e", "\xe6\x9d\x93", "\xf0\xa3\x8f\x83", "\xe3\xad\x89", "\xe6\x9f\xba",
  "\xe6\x9e\x85", "\xe6\xa1\x92", "\xe6\xa2\x85", "\xf0\xa3\x91\xad", "\xe6\xa2\x8e", "\xe6\xa0\x9f", "\xe6\xa4\x94", "\xe3\xae\x9d",
  "\xe6\xa5\x82", "\xe6\xa6\xa3", "\xe6\xa7\xaa", "\xe6\xaa\xa8", "\xf0\xa3\x9a\xa3", "\xe6\xab\x9b", "\xe3\xb0\x98", "\xe6\xac\xa1",
  "\xf0\xa3\xa2\xa7", "\xe6\xad\x94", "\xe3\xb1\x8e", "\xe6\xad\xb2", "\xe6\xae\x9f", "\xe6\xae\xba", "\xe6\xae\xbb", "\xf0\xa3\xaa\x8d",
  "\xf0\xa1\xb4\x8b", "\xf0\xa3\xab\xba", "\xe6\xb1\x8e", "\xf0\xa3\xb2\xbc", "\xe6\xb2\xbf", "\xe6\xb3\x8d", "\xe6\xb1\xa7", "\xe6\xb4\x96"
};

static const char *grn_nfkc170_decompose_table_f0afa4[] = {
  "\xe6\xb4\xbe", "\xe6\xb5\xb7", "\xe6\xb5\x81", "\xe6\xb5\xa9", "\xe6\xb5\xb8", "\xe6\xb6\x85", "\xf0\xa3\xb4\x9e", "\xe6\xb4\xb4",
  "\xe6\xb8\xaf", "\xe6\xb9\xae", "\xe3\xb4\xb3", "\xe6\xbb\x8b", "\xe6\xbb\x87", "\xf0\xa3\xbb\x91", "\xe6\xb7\xb9", "\xe6\xbd\xae",
  "\xf0\xa3\xbd\x9e", "\xf0\xa3\xbe\x8e", "\xe6\xbf\x86", "\xe7\x80\xb9", "\xe7\x80\x9e", "\xe7\x80\x9b", "\xe3\xb6\x96", "\xe7\x81\x8a",
  "\xe7\x81\xbd", "\xe7\x81\xb7", "\xe7\x82\xad", "\xf0\xa0\x94\xa5", "\xe7\x85\x85", "\xf0\xa4\x89\xa3", "\xe7\x86\x9c", "\xf0\xa4\x8e\xab",
  "\xe7\x88\xa8", "\xe7\x88\xb5", "\xe7\x89\x90", "\xf0\xa4\x98\x88", "\xe7\x8a\x80", "\xe7\x8a\x95", "\xf0\xa4\x9c\xb5", "\xf0\xa4\xa0\x94",
  "\xe7\x8d\xba", "\xe7\x8e\x8b", "\xe3\xba\xac", "\xe7\x8e\xa5", "\xe3\xba\xb8", "\xe3\xba\xb8", "\xe7\x91\x87", "\xe7\x91\x9c",
  "\xe7\x91\xb1", "\xe7\x92\x85", "\xe7\x93\x8a", "\xe3\xbc\x9b", "\xe7\x94\xa4", "\xf0\xa4\xb0\xb6", "\xe7\x94\xbe", "\xf0\xa4\xb2\x92",
  "\xe7\x95\xb0", "\xf0\xa2\x86\x9f", "\xe7\x98\x90", "\xf0\xa4\xbe\xa1", "\xf0\xa4\xbe\xb8", "\xf0\xa5\x81\x84", "\xe3\xbf\xbc", "\xe4\x80\x88"
};

static const char *grn_nfkc170_decompose_table_f0afa5[] = {
  "\xe7\x9b\xb4", "\xf0\xa5\x83\xb3", "\xf0\xa5\x83\xb2", "\xf0\xa5\x84\x99", "\xf0\xa5\x84\xb3", "\xe7\x9c\x9e", "\xe7\x9c\x9f", "\xe7\x9c\x9f",
  "\xe7\x9d\x8a", "\xe4\x80\xb9", "\xe7\x9e\x8b", "\xe4\x81\x86", "\xe4\x82\x96", "\xf0\xa5\x90\x9d", "\xe7\xa1\x8e", "\xe7\xa2\x8c",
  "\xe7\xa3\x8c", "\xe4\x83\xa3", "\xf0\xa5\x98\xa6", "\xe7\xa5\x96", "\xf0\xa5\x9a\x9a", "\xf0\xa5\x9b\x85", "\xe7\xa6\x8f", "\xe7\xa7\xab",
  "\xe4\x84\xaf", "\xe7\xa9\x80", "\xe7\xa9\x8a", "\xe7\xa9\x8f", "\xf0\xa5\xa5\xbc", "\xf0\xa5\xaa\xa7", "\xf0\xa5\xaa\xa7", "\xe7\xab\xae",
  "\xe4\x88\x82", "\xf0\xa5\xae\xab", "\xe7\xaf\x86", "\xe7\xaf\x89", "\xe4\x88\xa7", "\xf0\xa5\xb2\x80", "\xe7\xb3\x92", "\xe4\x8a\xa0",
  "\xe7\xb3\xa8", "\xe7\xb3\xa3", "\xe7\xb4\x80", "\xf0\xa5\xbe\x86", "\xe7\xb5\xa3", "\xe4\x8c\x81", "\xe7\xb7\x87", "\xe7\xb8\x82",
  "\xe7\xb9\x85", "\xe4\x8c\xb4", "\xf0\xa6\x88\xa8", "\xf0\xa6\x89\x87", "\xe4\x8d\x99", "\xf0\xa6\x8b\x99", "\xe7\xbd\xba", "\xf0\xa6\x8c\xbe",
  "\xe7\xbe\x95", "\xe7\xbf\xba", "\xe8\x80\x85", "\xf0\xa6\x93\x9a", "\xf0\xa6\x94\xa3", "\xe8\x81\xa0", "\xf0\xa6\x96\xa8", "\xe8\x81\xb0"
};

static const char *grn_nfkc170_decompose_table_f0afa6[] = {
  "\xf0\xa3\x8d\x9f", "\xe4\x8f\x95", "\xe8\x82\xb2", "\xe8\x84\x83", "\xe4\x90\x8b", "\xe8\x84\xbe", "\xe5\xaa\xb5", "\xf0\xa6\x9e\xa7",
  "\xf0\xa6\x9e\xb5", "\xf0\xa3\x8e\x93", "\xf0\xa3\x8e\x9c", "\xe8\x88\x81", "\xe8\x88\x84", "\xe8\xbe\x9e", "\xe4\x91\xab", "\xe8\x8a\x91",
  "\xe8\x8a\x8b", "\xe8\x8a\x9d", "\xe5\x8a\xb3", "\xe8\x8a\xb1", "\xe8\x8a\xb3", "\xe8\x8a\xbd", "\xe8\x8b\xa6", "\xf0\xa6\xac\xbc",
  "\xe8\x8b\xa5", "\xe8\x8c\x9d", "\xe8\x8d\xa3", "\xe8\x8e\xad", "\xe8\x8c\xa3", "\xe8\x8e\xbd", "\xe8\x8f\xa7", "\xe8\x91\x97",
  "\xe8\x8d\x93", "\xe8\x8f\x8a", "\xe8\x8f\x8c", "\xe8\x8f\x9c", "\xf0\xa6\xb0\xb6", "\xf0\xa6\xb5\xab", "\xf0\xa6\xb3\x95", "\xe4\x94\xab",
  "\xe8\x93\xb1", "\xe8\x93\xb3", "\xe8\x94\x96", "\xf0\xa7\x8f\x8a", "\xe8\x95\xa4", "\xf0\xa6\xbc\xac", "\xe4\x95\x9d", "\xe4\x95\xa1",
  "\xf0\xa6\xbe\xb1", "\xf0\xa7\x83\x92", "\xe4\x95\xab", "\xe8\x99\x90", "\xe8\x99\x9c", "\xe8\x99\xa7", "\xe8\x99\xa9", "\xe8\x9a\xa9",
  "\xe8\x9a\x88", "\xe8\x9c\x8e", "\xe8\x9b\xa2", "\xe8\x9d\xb9", "\xe8\x9c\xa8", "\xe8\x9d\xab", "\xe8\x9e\x86", "\xe4\x97\x97"
};

static const char *grn_nfkc170_decompose_table_f0afa7[] = {
  "\xe8\x9f\xa1", "\xe8\xa0\x81", "\xe4\x97\xb9", "\xe8\xa1\xa0", "\xe8\xa1\xa3", "\xf0\xa7\x99\xa7", "\xe8\xa3\x97", "\xe8\xa3\x9e",
  "\xe4\x98\xb5", "\xe8\xa3\xba", "\xe3\x92\xbb", "\xf0\xa7\xa2\xae", "\xf0\xa7\xa5\xa6", "\xe4\x9a\xbe", "\xe4\x9b\x87", "\xe8\xaa\xa0",
  "\xe8\xab\xad", "\xe8\xae\x8a", "\xe8\xb1\x95", "\xf0\xa7\xb2\xa8", "\xe8\xb2\xab", "\xe8\xb3\x81", "\xe8\xb4\x9b", "\xe8\xb5\xb7",
  "\xf0\xa7\xbc\xaf", "\xf0\xa0\xa0\x84", "\xe8\xb7\x8b", "\xe8\xb6\xbc", "\xe8\xb7\xb0", "\xf0\xa0\xa3\x9e", "\xe8\xbb\x94", "\xe8\xbc\xb8",
  "\xf0\xa8\x97\x92", "\xf0\xa8\x97\xad", "\xe9\x82\x94", "\xe9\x83\xb1", "\xe9\x84\x91", "\xf0\xa8\x9c\xae", "\xe9\x84\x9b", "\xe9\x88\xb8",
  "\xe9\x8b\x97", "\xe9\x8b\x98", "\xe9\x89\xbc", "\xe9\x8f\xb9", "\xe9\x90\x95", "\xf0\xa8\xaf\xba", "\xe9\x96\x8b", "\xe4\xa6\x95",
  "\xe9\x96\xb7", "\xf0\xa8\xb5\xb7", "\xe4\xa7\xa6", "\xe9\x9b\x83", "\xe5\xb6\xb2", "\xe9\x9c\xa3", "\xf0\xa9\x85\x85", "\xf0\xa9\x88\x9a",
  "\xe4\xa9\xae", "\xe4\xa9\xb6", "\xe9\x9f\xa0", "\xf0\xa9\x90\x8a", "\xe4\xaa\xb2", "\xf0\xa9\x92\x96", "\xe9\xa0\x8b", "\xe9\xa0\x8b"
};

static const char *grn_nfkc170_decompose_table_f0afa8[] = {
  "\xe9\xa0\xa9", "\xf0\xa9\x96\xb6", "\xe9\xa3\xa2", "\xe4\xac\xb3", "\xe9\xa4\xa9", "\xe9\xa6\xa7", "\xe9\xa7\x82", "\xe9\xa7\xbe",
  "\xe4\xaf\x8e", "\xf0\xa9\xac\xb0", "\xe9\xac\x92", "\xe9\xb1\x80", "\xe9\xb3\xbd", "\xe4\xb3\x8e", "\xe4\xb3\xad", "\xe9\xb5\xa7",
  "\xf0\xaa\x83\x8e", "\xe4\xb3\xb8", "\xf0\xaa\x84\x85", "\xf0\xaa\x88\x8e", "\xf0\xaa\x8a\x91", "\xe9\xba\xbb", "\xe4\xb5\x96", "\xe9\xbb\xb9",
  "\xe9\xbb\xbe", "\xe9\xbc\x85", "\xe9\xbc\x8f", "\xe9\xbc\x96", "\xe9\xbc\xbb", "\xf0\xaa\x98\x80"
};

const char *
grn_nfkc170_decompose(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x41 &&
        utf8[0] <= 0x5a) {
      return grn_nfkc170_decompose_table_[utf8[0] - 0x41];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc2 :
      if (utf8[1] >= 0xa0 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_decompose_table_c2[utf8[1] - 0xa0];
      }
      break;
    case 0xc3 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0x9e) {
        return grn_nfkc170_decompose_table_c3[utf8[1] - 0x80];
      }
      break;
    case 0xc4 :
      return grn_nfkc170_decompose_table_c4[utf8[1] - 0x80];
    case 0xc5 :
      return grn_nfkc170_decompose_table_c5[utf8[1] - 0x80];
    case 0xc6 :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc170_decompose_table_c6[utf8[1] - 0x81];
      }
      break;
    case 0xc7 :
      if (utf8[1] >= 0x84 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_decompose_table_c7[utf8[1] - 0x84];
      }
      break;
    case 0xc8 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_decompose_table_c8[utf8[1] - 0x80];
      }
      break;
    case 0xc9 :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x8e) {
        return grn_nfkc170_decompose_table_c9[utf8[1] - 0x81];
      }
      break;
    case 0xca :
      if (utf8[1] >= 0xb0 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc170_decompose_table_ca[utf8[1] - 0xb0];
      }
      break;
    case 0xcb :
      if (utf8[1] >= 0x98 &&
          utf8[1] <= 0xa4) {
        return grn_nfkc170_decompose_table_cb[utf8[1] - 0x98];
      }
      break;
    case 0xcd :
      return grn_nfkc170_decompose_table_cd[utf8[1] - 0x80];
    case 0xce :
      if (utf8[1] >= 0x84 &&
          utf8[1] <= 0xab) {
        return grn_nfkc170_decompose_table_ce[utf8[1] - 0x84];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x8f &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_decompose_table_cf[utf8[1] - 0x8f];
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xaf) {
        return grn_nfkc170_decompose_table_d0[utf8[1] - 0x80];
      }
      break;
    case 0xd1 :
      if (utf8[1] >= 0xa0 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_decompose_table_d1[utf8[1] - 0xa0];
      }
      break;
    case 0xd2 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_decompose_table_d2[utf8[1] - 0x80];
      }
      break;
    case 0xd3 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_decompose_table_d3[utf8[1] - 0x80];
      }
      break;
    case 0xd4 :
      return grn_nfkc170_decompose_table_d4[utf8[1] - 0x80];
    case 0xd5 :
      if (utf8[1] >= 0x80 &&
          utf8[1] <= 0x96) {
        return grn_nfkc170_decompose_table_d5[utf8[1] - 0x80];
      }
      break;
    case 0xd6 :
      if (utf8[1] == 0x87) {
        return "\xd5\xa5\xd6\x82";
      }
      break;
    case 0xd9 :
      if (utf8[1] >= 0xb5 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc170_decompose_table_d9[utf8[1] - 0xb5];
      }
      break;
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0x9f) {
          return grn_nfkc170_decompose_table_e0a5[utf8[2] - 0x98];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0x9f) {
          return grn_nfkc170_decompose_table_e0a7[utf8[2] - 0x9c];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0xb3 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc170_decompose_table_e0a8[utf8[2] - 0xb3];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x99 &&
            utf8[2] <= 0x9e) {
          return grn_nfkc170_decompose_table_e0a9[utf8[2] - 0x99];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0x9d) {
          return grn_nfkc170_decompose_table_e0ad[utf8[2] - 0x9c];
        }
        break;
      case 0xb8 :
        if (utf8[2] == 0xb3) {
          return "\xe0\xb9\x8d\xe0\xb8\xb2";
        }
        break;
      case 0xba :
        if (utf8[2] == 0xb3) {
          return "\xe0\xbb\x8d\xe0\xba\xb2";
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0x9d) {
          return grn_nfkc170_decompose_table_e0bb[utf8[2] - 0x9c];
        }
        break;
      case 0xbc :
        if (utf8[2] == 0x8c) {
          return "\xe0\xbc\x8b";
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_decompose_table_e0bd[utf8[2] - 0x83];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_decompose_table_e0be[utf8[2] - 0x81];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0x82 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e182[utf8[2] - 0xa0];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_decompose_table_e183[utf8[2] - 0x80];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e18e[utf8[2] - 0xa0];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb5) {
          return grn_nfkc170_decompose_table_e18f[utf8[2] - 0x80];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e1b2[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0xac &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e1b4[utf8[2] - 0xac];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_decompose_table_e1b5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x9b &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e1b6[utf8[2] - 0x9b];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e1b8[utf8[2] - 0x80];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e1b9[utf8[2] - 0x80];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e1ba[utf8[2] - 0x80];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e1bb[utf8[2] - 0x80];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e1bc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_decompose_table_e1bd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e1be[utf8[2] - 0x88];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e1bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe2 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e280[utf8[2] - 0x80];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x87 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e281[utf8[2] - 0x87];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_decompose_table_e282[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        return grn_nfkc170_decompose_table_e284[utf8[2] - 0x80];
      case 0x85 :
        return grn_nfkc170_decompose_table_e285[utf8[2] - 0x80];
      case 0x86 :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0x89) {
          return grn_nfkc170_decompose_table_e286[utf8[2] - 0x83];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0xac &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_decompose_table_e288[utf8[2] - 0xac];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0xa9 &&
            utf8[2] <= 0xaa) {
          return grn_nfkc170_decompose_table_e28c[utf8[2] - 0xa9];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e291[utf8[2] - 0xa0];
        }
        break;
      case 0x92 :
        return grn_nfkc170_decompose_table_e292[utf8[2] - 0x80];
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaa) {
          return grn_nfkc170_decompose_table_e293[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] == 0x8c) {
          return "\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab\xe2\x88\xab";
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0xb4 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc170_decompose_table_e2a9[utf8[2] - 0xb4];
        }
        break;
      case 0xab :
        if (utf8[2] == 0x9c) {
          return "\xe2\xab\x9d\xcc\xb8";
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xaf) {
          return grn_nfkc170_decompose_table_e2b0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e2b1[utf8[2] - 0xa0];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e2b2[utf8[2] - 0x80];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb2) {
          return grn_nfkc170_decompose_table_e2b3[utf8[2] - 0x80];
        }
        break;
      case 0xb5 :
        if (utf8[2] == 0xaf) {
          return "\xe2\xb5\xa1";
        }
        break;
      case 0xba :
        if (utf8[2] == 0x9f) {
          return "\xe6\xaf\x8d";
        }
        break;
      case 0xbb :
        if (utf8[2] == 0xb3) {
          return "\xe9\xbe\x9f";
        }
        break;
      case 0xbc :
        return grn_nfkc170_decompose_table_e2bc[utf8[2] - 0x80];
      case 0xbd :
        return grn_nfkc170_decompose_table_e2bd[utf8[2] - 0x80];
      case 0xbe :
        return grn_nfkc170_decompose_table_e2be[utf8[2] - 0x80];
      case 0xbf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x95) {
          return grn_nfkc170_decompose_table_e2bf[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    case 0xe3 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xba) {
          return grn_nfkc170_decompose_table_e380[utf8[2] - 0x80];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x9b &&
            utf8[2] <= 0x9f) {
          return grn_nfkc170_decompose_table_e382[utf8[2] - 0x9b];
        }
        break;
      case 0x83 :
        if (utf8[2] == 0xbf) {
          return "\xe3\x82\xb3\xe3\x83\x88";
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0xb1 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_e384[utf8[2] - 0xb1];
        }
        break;
      case 0x85 :
        return grn_nfkc170_decompose_table_e385[utf8[2] - 0x80];
      case 0x86 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9f) {
          return grn_nfkc170_decompose_table_e386[utf8[2] - 0x80];
        }
        break;
      case 0x88 :
        return grn_nfkc170_decompose_table_e388[utf8[2] - 0x80];
      case 0x89 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_e389[utf8[2] - 0x80];
        }
        break;
      case 0x8a :
        return grn_nfkc170_decompose_table_e38a[utf8[2] - 0x80];
      case 0x8b :
        return grn_nfkc170_decompose_table_e38b[utf8[2] - 0x80];
      case 0x8c :
        return grn_nfkc170_decompose_table_e38c[utf8[2] - 0x80];
      case 0x8d :
        return grn_nfkc170_decompose_table_e38d[utf8[2] - 0x80];
      case 0x8e :
        return grn_nfkc170_decompose_table_e38e[utf8[2] - 0x80];
      case 0x8f :
        return grn_nfkc170_decompose_table_e38f[utf8[2] - 0x80];
      default :
        break;
      }
      break;
    case 0xea :
      switch (utf8[1]) {
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_decompose_table_ea99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x9d) {
          return grn_nfkc170_decompose_table_ea9a[utf8[2] - 0x80];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0xa2 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_ea9c[utf8[2] - 0xa2];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_ea9d[utf8[2] - 0x80];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_ea9e[utf8[2] - 0x80];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_decompose_table_ea9f[utf8[2] - 0x80];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x9c &&
            utf8[2] <= 0xa9) {
          return grn_nfkc170_decompose_table_eaad[utf8[2] - 0x9c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xef :
      switch (utf8[1]) {
      case 0xa4 :
        return grn_nfkc170_decompose_table_efa4[utf8[2] - 0x80];
      case 0xa5 :
        return grn_nfkc170_decompose_table_efa5[utf8[2] - 0x80];
      case 0xa6 :
        return grn_nfkc170_decompose_table_efa6[utf8[2] - 0x80];
      case 0xa7 :
        return grn_nfkc170_decompose_table_efa7[utf8[2] - 0x80];
      case 0xa8 :
        return grn_nfkc170_decompose_table_efa8[utf8[2] - 0x80];
      case 0xa9 :
        return grn_nfkc170_decompose_table_efa9[utf8[2] - 0x80];
      case 0xaa :
        return grn_nfkc170_decompose_table_efaa[utf8[2] - 0x80];
      case 0xab :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x99) {
          return grn_nfkc170_decompose_table_efab[utf8[2] - 0x80];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_efac[utf8[2] - 0x80];
        }
        break;
      case 0xad :
        return grn_nfkc170_decompose_table_efad[utf8[2] - 0x80];
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb1) {
          return grn_nfkc170_decompose_table_efae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x93 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_efaf[utf8[2] - 0x93];
        }
        break;
      case 0xb0 :
        return grn_nfkc170_decompose_table_efb0[utf8[2] - 0x80];
      case 0xb1 :
        return grn_nfkc170_decompose_table_efb1[utf8[2] - 0x80];
      case 0xb2 :
        return grn_nfkc170_decompose_table_efb2[utf8[2] - 0x80];
      case 0xb3 :
        return grn_nfkc170_decompose_table_efb3[utf8[2] - 0x80];
      case 0xb4 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_decompose_table_efb4[utf8[2] - 0x80];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_efb5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        return grn_nfkc170_decompose_table_efb6[utf8[2] - 0x80];
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_decompose_table_efb7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_efb8[utf8[2] - 0x90];
        }
        break;
      case 0xb9 :
        return grn_nfkc170_decompose_table_efb9[utf8[2] - 0x80];
      case 0xba :
        return grn_nfkc170_decompose_table_efba[utf8[2] - 0x80];
      case 0xbb :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_decompose_table_efbb[utf8[2] - 0x80];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_decompose_table_efbc[utf8[2] - 0x81];
        }
        break;
      case 0xbd :
        return grn_nfkc170_decompose_table_efbd[utf8[2] - 0x80];
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xbe) {
          return grn_nfkc170_decompose_table_efbe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xae) {
          return grn_nfkc170_decompose_table_efbf[utf8[2] - 0x82];
        }
        break;
      default :
        break;
      }
      break;
    case 0xf0 :
      switch (utf8[1]) {
      case 0x90 :
        switch (utf8[2]) {
        case 0x90 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa7) {
            return grn_nfkc170_decompose_table_f09090[utf8[3] - 0x80];
          }
          break;
        case 0x92 :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_decompose_table_f09092[utf8[3] - 0xb0];
          }
          break;
        case 0x93 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x93) {
            return grn_nfkc170_decompose_table_f09093[utf8[3] - 0x80];
          }
          break;
        case 0x95 :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_decompose_table_f09095[utf8[3] - 0xb0];
          }
          break;
        case 0x96 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x95) {
            return grn_nfkc170_decompose_table_f09096[utf8[3] - 0x80];
          }
          break;
        case 0x9e :
          if (utf8[3] >= 0x81 &&
              utf8[3] <= 0xba) {
            return grn_nfkc170_decompose_table_f0909e[utf8[3] - 0x81];
          }
          break;
        case 0xb2 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xb2) {
            return grn_nfkc170_decompose_table_f090b2[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x91 :
        switch (utf8[2]) {
        case 0xa2 :
          if (utf8[3] >= 0xa0 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_decompose_table_f091a2[utf8[3] - 0xa0];
          }
          break;
        default :
          break;
        }
        break;
      case 0x96 :
        switch (utf8[2]) {
        case 0xb9 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9f) {
            return grn_nfkc170_decompose_table_f096b9[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9c :
        switch (utf8[2]) {
        case 0xb3 :
          if (utf8[3] >= 0x96 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_decompose_table_f09cb3[utf8[3] - 0x96];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9d :
        switch (utf8[2]) {
        case 0x85 :
          if (utf8[3] >= 0x9e &&
              utf8[3] <= 0xa4) {
            return grn_nfkc170_decompose_table_f09d85[utf8[3] - 0x9e];
          }
          break;
        case 0x86 :
          if (utf8[3] >= 0xbb &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_decompose_table_f09d86[utf8[3] - 0xbb];
          }
          break;
        case 0x87 :
          if (utf8[3] == 0x80) {
            return "\xf0\x9d\x86\xba\xf0\x9d\x85\xa5\xf0\x9d\x85\xaf";
          }
          break;
        case 0x90 :
          return grn_nfkc170_decompose_table_f09d90[utf8[3] - 0x80];
        case 0x91 :
          return grn_nfkc170_decompose_table_f09d91[utf8[3] - 0x80];
        case 0x92 :
          return grn_nfkc170_decompose_table_f09d92[utf8[3] - 0x80];
        case 0x93 :
          return grn_nfkc170_decompose_table_f09d93[utf8[3] - 0x80];
        case 0x94 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc170_decompose_table_f09d94[utf8[3] - 0x80];
          }
          break;
        case 0x95 :
          return grn_nfkc170_decompose_table_f09d95[utf8[3] - 0x80];
        case 0x96 :
          return grn_nfkc170_decompose_table_f09d96[utf8[3] - 0x80];
        case 0x97 :
          return grn_nfkc170_decompose_table_f09d97[utf8[3] - 0x80];
        case 0x98 :
          return grn_nfkc170_decompose_table_f09d98[utf8[3] - 0x80];
        case 0x99 :
          return grn_nfkc170_decompose_table_f09d99[utf8[3] - 0x80];
        case 0x9a :
          return grn_nfkc170_decompose_table_f09d9a[utf8[3] - 0x80];
        case 0x9b :
          return grn_nfkc170_decompose_table_f09d9b[utf8[3] - 0x80];
        case 0x9c :
          return grn_nfkc170_decompose_table_f09d9c[utf8[3] - 0x80];
        case 0x9d :
          return grn_nfkc170_decompose_table_f09d9d[utf8[3] - 0x80];
        case 0x9e :
          return grn_nfkc170_decompose_table_f09d9e[utf8[3] - 0x80];
        case 0x9f :
          return grn_nfkc170_decompose_table_f09d9f[utf8[3] - 0x80];
        default :
          break;
        }
        break;
      case 0x9e :
        switch (utf8[2]) {
        case 0x80 :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xbf) {
            return grn_nfkc170_decompose_table_f09e80[utf8[3] - 0xb0];
          }
          break;
        case 0x81 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xad) {
            return grn_nfkc170_decompose_table_f09e81[utf8[3] - 0x80];
          }
          break;
        case 0xa4 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xa1) {
            return grn_nfkc170_decompose_table_f09ea4[utf8[3] - 0x80];
          }
          break;
        case 0xb8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_decompose_table_f09eb8[utf8[3] - 0x80];
          }
          break;
        case 0xb9 :
          if (utf8[3] >= 0x82 &&
              utf8[3] <= 0xbe) {
            return grn_nfkc170_decompose_table_f09eb9[utf8[3] - 0x82];
          }
          break;
        case 0xba :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_decompose_table_f09eba[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      case 0x9f :
        switch (utf8[2]) {
        case 0x84 :
          return grn_nfkc170_decompose_table_f09f84[utf8[3] - 0x80];
        case 0x85 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xac) {
            return grn_nfkc170_decompose_table_f09f85[utf8[3] - 0x80];
          }
          break;
        case 0x86 :
          if (utf8[3] == 0x90) {
            return "\x64\x6a";
          }
          break;
        case 0x88 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0xbb) {
            return grn_nfkc170_decompose_table_f09f88[utf8[3] - 0x80];
          }
          break;
        case 0x89 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x91) {
            return grn_nfkc170_decompose_table_f09f89[utf8[3] - 0x80];
          }
          break;
        case 0xaf :
          if (utf8[3] >= 0xb0 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_decompose_table_f09faf[utf8[3] - 0xb0];
          }
          break;
        default :
          break;
        }
        break;
      case 0xaf :
        switch (utf8[2]) {
        case 0xa0 :
          return grn_nfkc170_decompose_table_f0afa0[utf8[3] - 0x80];
        case 0xa1 :
          return grn_nfkc170_decompose_table_f0afa1[utf8[3] - 0x80];
        case 0xa2 :
          return grn_nfkc170_decompose_table_f0afa2[utf8[3] - 0x80];
        case 0xa3 :
          return grn_nfkc170_decompose_table_f0afa3[utf8[3] - 0x80];
        case 0xa4 :
          return grn_nfkc170_decompose_table_f0afa4[utf8[3] - 0x80];
        case 0xa5 :
          return grn_nfkc170_decompose_table_f0afa5[utf8[3] - 0x80];
        case 0xa6 :
          return grn_nfkc170_decompose_table_f0afa6[utf8[3] - 0x80];
        case 0xa7 :
          return grn_nfkc170_decompose_table_f0afa7[utf8[3] - 0x80];
        case 0xa8 :
          if (utf8[3] >= 0x80 &&
              utf8[3] <= 0x9d) {
            return grn_nfkc170_decompose_table_f0afa8[utf8[3] - 0x80];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc80_table_[] = {
  "\xc3\xa0", NULL, NULL, NULL, "\xc3\xa8", NULL, NULL, NULL,
  "\xc3\xac", NULL, NULL, NULL, NULL, "\xc7\xb9", "\xc3\xb2", NULL,
  NULL, NULL, NULL, NULL, "\xc3\xb9", NULL, "\xe1\xba\x81", NULL,
  "\xe1\xbb\xb3"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_c3[] = {
  "\xe1\xba\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe1\xbb\x93", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xc7\x9c"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_c4[] = {
  "\xe1\xba\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb8\x95"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_c6[] = {
  "\xe1\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xab"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_ce[] = {
  "\xe1\xbd\xb0", NULL, NULL, NULL, "\xe1\xbd\xb2", NULL, "\xe1\xbd\xb4", NULL,
  "\xe1\xbd\xb6", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\xb8"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_cf[] = {
  "\xe1\xbd\xba", NULL, NULL, NULL, "\xe1\xbd\xbc", "\xe1\xbf\x92", "\xe1\xbf\xa2"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_d0[] = {
  "\xd1\x90", NULL, NULL, "\xd1\x9d"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_e1bc[] = {
  "\xe1\xbc\x82", "\xe1\xbc\x83", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x92", "\xe1\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa2", "\xe1\xbc\xa3", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb2", "\xe1\xbc\xb3"
};

static const char *grn_nfkc170_compose_prefix_cc80_table_e1bd[] = {
  "\xe1\xbd\x82", "\xe1\xbd\x83", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\x92", "\xe1\xbd\x93", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa2", "\xe1\xbd\xa3"
};

static inline const char *
grn_nfkc170_compose_prefix_cc80(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc170_compose_prefix_cc80_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc170_compose_prefix_cc80_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] >= 0x83 &&
          utf8[1] <= 0x93) {
        return grn_nfkc170_compose_prefix_cc80_table_c4[utf8[1] - 0x83];
      }
      break;
    case 0xc5 :
      if (utf8[1] == 0x8d) {
        return "\xe1\xb9\x91";
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc170_compose_prefix_cc80_table_c6[utf8[1] - 0xa1];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_compose_prefix_cc80_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x85 &&
          utf8[1] <= 0x8b) {
        return grn_nfkc170_compose_prefix_cc80_table_cf[utf8[1] - 0x85];
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0xb5 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc170_compose_prefix_cc80_table_d0[utf8[1] - 0xb5];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb1) {
          return grn_nfkc170_compose_prefix_cc80_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa1) {
          return grn_nfkc170_compose_prefix_cc80_table_e1bd[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc81_table_[] = {
  "\xc3\xa1", NULL, "\xc4\x87", NULL, "\xc3\xa9", NULL, "\xc7\xb5", NULL,
  "\xc3\xad", NULL, "\xe1\xb8\xb1", "\xc4\xba", "\xe1\xb8\xbf", "\xc5\x84", "\xc3\xb3", "\xe1\xb9\x95",
  NULL, "\xc5\x95", "\xc5\x9b", NULL, "\xc3\xba", NULL, "\xe1\xba\x83", NULL,
  "\xc3\xbd", "\xc5\xba"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_c3[] = {
  "\xe1\xba\xa5", NULL, NULL, "\xc7\xbb", "\xc7\xbd", "\xe1\xb8\x89", NULL, NULL,
  "\xe1\xba\xbf", NULL, NULL, NULL, NULL, "\xe1\xb8\xaf", NULL, NULL,
  NULL, NULL, "\xe1\xbb\x91", "\xe1\xb9\x8d", NULL, NULL, "\xc7\xbf", NULL,
  NULL, NULL, "\xc7\x98"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_c4[] = {
  "\xe1\xba\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb8\x97"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_c5[] = {
  "\xe1\xb9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xb9\xb9"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_c6[] = {
  "\xe1\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xa9"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_ce[] = {
  "\xce\xac", NULL, NULL, NULL, "\xce\xad", NULL, "\xce\xae", NULL,
  "\xce\xaf", NULL, NULL, NULL, NULL, NULL, "\xcf\x8c"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_cf[] = {
  "\xcf\x8d", NULL, NULL, NULL, "\xcf\x8e", "\xce\x90", "\xce\xb0"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_d0[] = {
  "\xd1\x93", NULL, NULL, NULL, NULL, NULL, NULL, "\xd1\x9c"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_e1bc[] = {
  "\xe1\xbc\x84", "\xe1\xbc\x85", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\x94", "\xe1\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa4", "\xe1\xbc\xa5", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb4", "\xe1\xbc\xb5"
};

static const char *grn_nfkc170_compose_prefix_cc81_table_e1bd[] = {
  "\xe1\xbd\x84", "\xe1\xbd\x85", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\x94", "\xe1\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa4", "\xe1\xbd\xa5"
};

static inline const char *
grn_nfkc170_compose_prefix_cc81(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc170_compose_prefix_cc81_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc170_compose_prefix_cc81_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] >= 0x83 &&
          utf8[1] <= 0x93) {
        return grn_nfkc170_compose_prefix_cc81_table_c4[utf8[1] - 0x83];
      }
      break;
    case 0xc5 :
      if (utf8[1] >= 0x8d &&
          utf8[1] <= 0xa9) {
        return grn_nfkc170_compose_prefix_cc81_table_c5[utf8[1] - 0x8d];
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc170_compose_prefix_cc81_table_c6[utf8[1] - 0xa1];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_compose_prefix_cc81_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x85 &&
          utf8[1] <= 0x8b) {
        return grn_nfkc170_compose_prefix_cc81_table_cf[utf8[1] - 0x85];
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0xb3 &&
          utf8[1] <= 0xba) {
        return grn_nfkc170_compose_prefix_cc81_table_d0[utf8[1] - 0xb3];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb1) {
          return grn_nfkc170_compose_prefix_cc81_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa1) {
          return grn_nfkc170_compose_prefix_cc81_table_e1bd[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc82_table_[] = {
  "\xc3\xa2", NULL, "\xc4\x89", NULL, "\xc3\xaa", NULL, "\xc4\x9d", "\xc4\xa5",
  "\xc3\xae", "\xc4\xb5", NULL, NULL, NULL, NULL, "\xc3\xb4", NULL,
  NULL, NULL, "\xc5\x9d", NULL, "\xc3\xbb", NULL, "\xc5\xb5", NULL,
  "\xc5\xb7", "\xe1\xba\x91"
};

static const char *grn_nfkc170_compose_prefix_cc82_table_e1ba[] = {
  "\xe1\xba\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x87"
};

static inline const char *
grn_nfkc170_compose_prefix_cc82(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc170_compose_prefix_cc82_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0xba :
        if (utf8[2] >= 0xa1 &&
            utf8[2] <= 0xb9) {
          return grn_nfkc170_compose_prefix_cc82_table_e1ba[utf8[2] - 0xa1];
        }
        break;
      case 0xbb :
        if (utf8[2] == 0x8d) {
          return "\xe1\xbb\x99";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc83_table_[] = {
  "\xc3\xa3", NULL, NULL, NULL, "\xe1\xba\xbd", NULL, NULL, NULL,
  "\xc4\xa9", NULL, NULL, NULL, NULL, "\xc3\xb1", "\xc3\xb5", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xa9", "\xe1\xb9\xbd", NULL, NULL,
  "\xe1\xbb\xb9"
};

static const char *grn_nfkc170_compose_prefix_cc83_table_c3[] = {
  "\xe1\xba\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe1\xbb\x97"
};

static const char *grn_nfkc170_compose_prefix_cc83_table_c6[] = {
  "\xe1\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xaf"
};

static inline const char *
grn_nfkc170_compose_prefix_cc83(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc170_compose_prefix_cc83_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xb4) {
        return grn_nfkc170_compose_prefix_cc83_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] == 0x83) {
        return "\xe1\xba\xb5";
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc170_compose_prefix_cc83_table_c6[utf8[1] - 0xa1];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc88_table_[] = {
  "\xc3\xa4", NULL, NULL, NULL, "\xc3\xab", NULL, NULL, "\xe1\xb8\xa7",
  "\xc3\xaf", NULL, NULL, NULL, NULL, NULL, "\xc3\xb6", NULL,
  NULL, NULL, NULL, "\xe1\xba\x97", "\xc3\xbc", NULL, "\xe1\xba\x85", "\xe1\xba\x8d",
  "\xc3\xbf"
};

static const char *grn_nfkc170_compose_prefix_cc88_table_d0[] = {
  "\xd3\x93", NULL, NULL, NULL, NULL, "\xd1\x91", "\xd3\x9d", "\xd3\x9f",
  "\xd3\xa5", NULL, NULL, NULL, NULL, NULL, "\xd3\xa7"
};

static const char *grn_nfkc170_compose_prefix_cc88_table_d1[] = {
  "\xd3\xb1", NULL, NULL, NULL, "\xd3\xb5", NULL, NULL, NULL,
  "\xd3\xb9", NULL, "\xd3\xad", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xd1\x97"
};

static const char *grn_nfkc170_compose_prefix_cc88_table_d3[] = {
  "\xd3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xd3\xab"
};

static inline const char *
grn_nfkc170_compose_prefix_cc88(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc170_compose_prefix_cc88_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] == 0xb5) {
        return "\xe1\xb9\x8f";
      }
      break;
    case 0xc5 :
      if (utf8[1] == 0xab) {
        return "\xe1\xb9\xbb";
      }
      break;
    case 0xce :
      if (utf8[1] == 0xb9) {
        return "\xcf\x8a";
      }
      break;
    case 0xcf :
      if (utf8[1] == 0x85) {
        return "\xcf\x8b";
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0xb0 &&
          utf8[1] <= 0xbe) {
        return grn_nfkc170_compose_prefix_cc88_table_d0[utf8[1] - 0xb0];
      }
      break;
    case 0xd1 :
      if (utf8[1] >= 0x83 &&
          utf8[1] <= 0x96) {
        return grn_nfkc170_compose_prefix_cc88_table_d1[utf8[1] - 0x83];
      }
      break;
    case 0xd3 :
      if (utf8[1] >= 0x99 &&
          utf8[1] <= 0xa9) {
        return grn_nfkc170_compose_prefix_cc88_table_d3[utf8[1] - 0x99];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc8a_table_[] = {
  "\xc3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xc5\xaf", NULL, "\xe1\xba\x98", NULL,
  "\xe1\xba\x99"
};

static inline const char *
grn_nfkc170_compose_prefix_cc8a(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc170_compose_prefix_cc8a_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cca7_table_[] = {
  "\xc3\xa7", "\xe1\xb8\x91", "\xc8\xa9", NULL, "\xc4\xa3", "\xe1\xb8\xa9", NULL, NULL,
  "\xc4\xb7", "\xc4\xbc", NULL, "\xc5\x86", NULL, NULL, NULL, "\xc5\x97",
  "\xc5\x9f", "\xc5\xa3"
};

static inline const char *
grn_nfkc170_compose_prefix_cca7(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x63 &&
        utf8[0] <= 0x74) {
      return grn_nfkc170_compose_prefix_cca7_table_[utf8[0] - 0x63];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc84_table_[] = {
  "\xc4\x81", NULL, NULL, NULL, "\xc4\x93", NULL, "\xe1\xb8\xa1", NULL,
  "\xc4\xab", NULL, NULL, NULL, NULL, NULL, "\xc5\x8d", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xab", NULL, NULL, NULL,
  "\xc8\xb3"
};

static const char *grn_nfkc170_compose_prefix_cc84_table_c3[] = {
  "\xc7\x9f", NULL, "\xc7\xa3", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xc8\xad", "\xc8\xab", NULL, NULL, NULL, NULL, NULL,
  "\xc7\x96"
};

static const char *grn_nfkc170_compose_prefix_cc84_table_c8[] = {
  "\xc7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xc8\xb1"
};

static const char *grn_nfkc170_compose_prefix_cc84_table_ce[] = {
  "\xe1\xbe\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\x91"
};

static inline const char *
grn_nfkc170_compose_prefix_cc84(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc170_compose_prefix_cc84_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa4 &&
          utf8[1] <= 0xbc) {
        return grn_nfkc170_compose_prefix_cc84_table_c3[utf8[1] - 0xa4];
      }
      break;
    case 0xc7 :
      if (utf8[1] == 0xab) {
        return "\xc7\xad";
      }
      break;
    case 0xc8 :
      if (utf8[1] >= 0xa7 &&
          utf8[1] <= 0xaf) {
        return grn_nfkc170_compose_prefix_cc84_table_c8[utf8[1] - 0xa7];
      }
      break;
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc170_compose_prefix_cc84_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] == 0x85) {
        return "\xe1\xbf\xa1";
      }
      break;
    case 0xd0 :
      if (utf8[1] == 0xb8) {
        return "\xd3\xa3";
      }
      break;
    case 0xd1 :
      if (utf8[1] == 0x83) {
        return "\xd3\xaf";
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xb8 :
        if (utf8[2] == 0xb7) {
          return "\xe1\xb8\xb9";
        }
        break;
      case 0xb9 :
        if (utf8[2] == 0x9b) {
          return "\xe1\xb9\x9d";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc86_table_[] = {
  "\xc4\x83", NULL, NULL, NULL, "\xc4\x95", NULL, "\xc4\x9f", NULL,
  "\xc4\xad", NULL, NULL, NULL, NULL, NULL, "\xc5\x8f", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xad"
};

static const char *grn_nfkc170_compose_prefix_cc86_table_ce[] = {
  "\xe1\xbe\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\x90"
};

static const char *grn_nfkc170_compose_prefix_cc86_table_d0[] = {
  "\xd3\x91", NULL, NULL, NULL, NULL, "\xd3\x97", "\xd3\x82", NULL,
  "\xd0\xb9"
};

static inline const char *
grn_nfkc170_compose_prefix_cc86(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_cc86_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc8 :
      if (utf8[1] == 0xa9) {
        return "\xe1\xb8\x9d";
      }
      break;
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc170_compose_prefix_cc86_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] == 0x85) {
        return "\xe1\xbf\xa0";
      }
      break;
    case 0xd0 :
      if (utf8[1] >= 0xb0 &&
          utf8[1] <= 0xb8) {
        return grn_nfkc170_compose_prefix_cc86_table_d0[utf8[1] - 0xb0];
      }
      break;
    case 0xd1 :
      if (utf8[1] == 0x83) {
        return "\xd1\x9e";
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xba :
        if (utf8[2] == 0xa1) {
          return "\xe1\xba\xb7";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cca8_table_[] = {
  "\xc4\x85", NULL, NULL, NULL, "\xc4\x99", NULL, NULL, NULL,
  "\xc4\xaf", NULL, NULL, NULL, NULL, NULL, "\xc7\xab", NULL,
  NULL, NULL, NULL, NULL, "\xc5\xb3"
};

static inline const char *
grn_nfkc170_compose_prefix_cca8(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_cca8_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc87_table_[] = {
  "\xc8\xa7", "\xe1\xb8\x83", "\xc4\x8b", "\xe1\xb8\x8b", "\xc4\x97", "\xe1\xb8\x9f", "\xc4\xa1", "\xe1\xb8\xa3",
  "\x69", NULL, NULL, NULL, "\xe1\xb9\x81", "\xe1\xb9\x85", "\xc8\xaf", "\xe1\xb9\x97",
  NULL, "\xe1\xb9\x99", "\xe1\xb9\xa1", "\xe1\xb9\xab", NULL, NULL, "\xe1\xba\x87", "\xe1\xba\x8b",
  "\xe1\xba\x8f", "\xc5\xbc"
};

static const char *grn_nfkc170_compose_prefix_cc87_table_c5[] = {
  "\xe1\xb9\xa5", NULL, NULL, NULL, NULL, NULL, "\xe1\xb9\xa7"
};

static const char *grn_nfkc170_compose_prefix_cc87_table_f09097[] = {
  "\xf0\x90\x97\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xf0\x90\x97\xa4"
};

static inline const char *
grn_nfkc170_compose_prefix_cc87(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc170_compose_prefix_cc87_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc5 :
      if (utf8[1] >= 0x9b &&
          utf8[1] <= 0xa1) {
        return grn_nfkc170_compose_prefix_cc87_table_c5[utf8[1] - 0x9b];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xb9 :
        if (utf8[2] == 0xa3) {
          return "\xe1\xb9\xa9";
        }
        break;
      default :
        break;
      }
      break;
    case 0xf0 :
      switch (utf8[1]) {
      case 0x90 :
        switch (utf8[2]) {
        case 0x97 :
          if (utf8[3] >= 0x92 &&
              utf8[3] <= 0x9a) {
            return grn_nfkc170_compose_prefix_cc87_table_f09097[utf8[3] - 0x92];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc8c_table_[] = {
  "\xc7\x8e", NULL, "\xc4\x8d", "\xc4\x8f", "\xc4\x9b", NULL, "\xc7\xa7", "\xc8\x9f",
  "\xc7\x90", "\xc7\xb0", "\xc7\xa9", "\xc4\xbe", NULL, "\xc5\x88", "\xc7\x92", NULL,
  NULL, "\xc5\x99", "\xc5\xa1", "\xc5\xa5", "\xc7\x94", NULL, NULL, NULL,
  NULL, "\xc5\xbe"
};

static inline const char *
grn_nfkc170_compose_prefix_cc8c(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc170_compose_prefix_cc8c_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] == 0xbc) {
        return "\xc7\x9a";
      }
      break;
    case 0xca :
      if (utf8[1] == 0x92) {
        return "\xc7\xaf";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc8b_table_[] = {
  "\xc5\x91", NULL, NULL, NULL, NULL, NULL, "\xc5\xb1"
};

static inline const char *
grn_nfkc170_compose_prefix_cc8b(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x6f &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_cc8b_table_[utf8[0] - 0x6f];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xd1 :
      if (utf8[1] == 0x83) {
        return "\xd3\xb3";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc9b_table_[] = {
  "\xc6\xa1", NULL, NULL, NULL, NULL, NULL, "\xc6\xb0"
};

static inline const char *
grn_nfkc170_compose_prefix_cc9b(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x6f &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_cc9b_table_[utf8[0] - 0x6f];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc8f_table_[] = {
  "\xc8\x81", NULL, NULL, NULL, "\xc8\x85", NULL, NULL, NULL,
  "\xc8\x89", NULL, NULL, NULL, NULL, NULL, "\xc8\x8d", NULL,
  NULL, "\xc8\x91", NULL, NULL, "\xc8\x95"
};

static inline const char *
grn_nfkc170_compose_prefix_cc8f(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_cc8f_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xd1 :
      if (utf8[1] == 0xb5) {
        return "\xd1\xb7";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc91_table_[] = {
  "\xc8\x83", NULL, NULL, NULL, "\xc8\x87", NULL, NULL, NULL,
  "\xc8\x8b", NULL, NULL, NULL, NULL, NULL, "\xc8\x8f", NULL,
  NULL, "\xc8\x93", NULL, NULL, "\xc8\x97"
};

static inline const char *
grn_nfkc170_compose_prefix_cc91(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_cc91_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cca6_table_[] = {
  "\xc8\x99", "\xc8\x9b"
};

static inline const char *
grn_nfkc170_compose_prefix_cca6(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x73 &&
        utf8[0] <= 0x74) {
      return grn_nfkc170_compose_prefix_cca6_table_[utf8[0] - 0x73];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_d993(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xd8 :
      if (utf8[1] == 0xa7) {
        return "\xd8\xa2";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_d994_table_d9[] = {
  "\xd8\xa4", NULL, "\xd8\xa6"
};

static const char *grn_nfkc170_compose_prefix_d994_table_db[] = {
  "\xdb\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xdb\x93", NULL, NULL, "\xdb\x80"
};

static inline const char *
grn_nfkc170_compose_prefix_d994(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xd8 :
      if (utf8[1] == 0xa7) {
        return "\xd8\xa3";
      }
      break;
    case 0xd9 :
      if (utf8[1] >= 0x88 &&
          utf8[1] <= 0x8a) {
        return grn_nfkc170_compose_prefix_d994_table_d9[utf8[1] - 0x88];
      }
      break;
    case 0xdb :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x95) {
        return grn_nfkc170_compose_prefix_d994_table_db[utf8[1] - 0x81];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_d995(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xd8 :
      if (utf8[1] == 0xa7) {
        return "\xd8\xa5";
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e0a4bc_table_e0a4[] = {
  "\xe0\xa4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe0\xa4\xb1", NULL, NULL, "\xe0\xa4\xb4"
};

static inline const char *
grn_nfkc170_compose_prefix_e0a4bc(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa4 :
        if (utf8[2] >= 0xa8 &&
            utf8[2] <= 0xb3) {
          return grn_nfkc170_compose_prefix_e0a4bc_table_e0a4[utf8[2] - 0xa8];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0a6be(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa7 :
        if (utf8[2] == 0x87) {
          return "\xe0\xa7\x8b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0a797(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xa7 :
        if (utf8[2] == 0x87) {
          return "\xe0\xa7\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0ad96(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xad :
        if (utf8[2] == 0x87) {
          return "\xe0\xad\x88";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0acbe(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xad :
        if (utf8[2] == 0x87) {
          return "\xe0\xad\x8b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0ad97(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xad :
        if (utf8[2] == 0x87) {
          return "\xe0\xad\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0af97(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xae :
        if (utf8[2] == 0x92) {
          return "\xe0\xae\x94";
        }
        break;
      case 0xaf :
        if (utf8[2] == 0x86) {
          return "\xe0\xaf\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e0aebe_table_e0af[] = {
  "\xe0\xaf\x8a", "\xe0\xaf\x8b"
};

static inline const char *
grn_nfkc170_compose_prefix_e0aebe(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xaf :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0x87) {
          return grn_nfkc170_compose_prefix_e0aebe_table_e0af[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0b196(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb1 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb1\x88";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e0b395_table_e0b3[] = {
  "\xe0\xb3\x87", NULL, NULL, NULL, "\xe0\xb3\x8b"
};

static inline const char *
grn_nfkc170_compose_prefix_e0b395(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb2 :
        if (utf8[2] == 0xbf) {
          return "\xe0\xb3\x80";
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0x8a) {
          return grn_nfkc170_compose_prefix_e0b395_table_e0b3[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0b396(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb3 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb3\x88";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0b382(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb3 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb3\x8a";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e0b4be_table_e0b5[] = {
  "\xe0\xb5\x8a", "\xe0\xb5\x8b"
};

static inline const char *
grn_nfkc170_compose_prefix_e0b4be(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb5 :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0x87) {
          return grn_nfkc170_compose_prefix_e0b4be_table_e0b5[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0b597(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb5 :
        if (utf8[2] == 0x86) {
          return "\xe0\xb5\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e0b78a_table_e0b7[] = {
  "\xe0\xb7\x9a", NULL, NULL, "\xe0\xb7\x9d"
};

static inline const char *
grn_nfkc170_compose_prefix_e0b78a(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb7 :
        if (utf8[2] >= 0x99 &&
            utf8[2] <= 0x9c) {
          return grn_nfkc170_compose_prefix_e0b78a_table_e0b7[utf8[2] - 0x99];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0b78f(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb7 :
        if (utf8[2] == 0x99) {
          return "\xe0\xb7\x9c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e0b79f(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe0 :
      switch (utf8[1]) {
      case 0xb7 :
        if (utf8[2] == 0x99) {
          return "\xe0\xb7\x9e";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_e180ae(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] == 0xa5) {
          return "\xe1\x80\xa6";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e1acb5_table_e1ac[] = {
  "\xe1\xac\x86", NULL, "\xe1\xac\x88", NULL, "\xe1\xac\x8a", NULL, "\xe1\xac\x8c", NULL,
  "\xe1\xac\x8e", NULL, NULL, NULL, "\xe1\xac\x92", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, "\xe1\xac\xbb", NULL, "\xe1\xac\xbd",
  NULL, "\xe1\xad\x80", "\xe1\xad\x81"
};

static inline const char *
grn_nfkc170_compose_prefix_e1acb5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0xac :
        if (utf8[2] >= 0x85 &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_compose_prefix_e1acb5_table_e1ac[utf8[2] - 0x85];
        }
        break;
      case 0xad :
        if (utf8[2] == 0x82) {
          return "\xe1\xad\x83";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_cca5(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] == 0x61) {
      return "\xe1\xb8\x81";
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cca3_table_[] = {
  "\xe1\xba\xa1", "\xe1\xb8\x85", NULL, "\xe1\xb8\x8d", "\xe1\xba\xb9", NULL, NULL, "\xe1\xb8\xa5",
  "\xe1\xbb\x8b", NULL, "\xe1\xb8\xb3", "\xe1\xb8\xb7", "\xe1\xb9\x83", "\xe1\xb9\x87", "\xe1\xbb\x8d", NULL,
  NULL, "\xe1\xb9\x9b", "\xe1\xb9\xa3", "\xe1\xb9\xad", "\xe1\xbb\xa5", "\xe1\xb9\xbf", "\xe1\xba\x89", NULL,
  "\xe1\xbb\xb5", "\xe1\xba\x93"
};

static const char *grn_nfkc170_compose_prefix_cca3_table_c6[] = {
  "\xe1\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xb1"
};

static inline const char *
grn_nfkc170_compose_prefix_cca3(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc170_compose_prefix_cca3_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc170_compose_prefix_cca3_table_c6[utf8[1] - 0xa1];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_ccb1_table_[] = {
  "\xe1\xb8\x87", NULL, "\xe1\xb8\x8f", NULL, NULL, NULL, "\xe1\xba\x96", NULL,
  NULL, "\xe1\xb8\xb5", "\xe1\xb8\xbb", NULL, "\xe1\xb9\x89", NULL, NULL, NULL,
  "\xe1\xb9\x9f", NULL, "\xe1\xb9\xaf", NULL, NULL, NULL, NULL, NULL,
  "\xe1\xba\x95"
};

static inline const char *
grn_nfkc170_compose_prefix_ccb1(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x62 &&
        utf8[0] <= 0x7a) {
      return grn_nfkc170_compose_prefix_ccb1_table_[utf8[0] - 0x62];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_ccad_table_[] = {
  "\xe1\xb8\x93", "\xe1\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb8\xbd", NULL, "\xe1\xb9\x8b", NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb9\xb1", "\xe1\xb9\xb7"
};

static inline const char *
grn_nfkc170_compose_prefix_ccad(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x64 &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_ccad_table_[utf8[0] - 0x64];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_ccb0_table_[] = {
  "\xe1\xb8\x9b", NULL, NULL, NULL, "\xe1\xb8\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xb9\xb5"
};

static inline const char *
grn_nfkc170_compose_prefix_ccb0(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x65 &&
        utf8[0] <= 0x75) {
      return grn_nfkc170_compose_prefix_ccb0_table_[utf8[0] - 0x65];
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_ccae(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] == 0x68) {
      return "\xe1\xb8\xab";
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_cca4(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] == 0x75) {
      return "\xe1\xb9\xb3";
    } else {
      return NULL;
    }
  } else {
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc89_table_[] = {
  "\xe1\xba\xa3", NULL, NULL, NULL, "\xe1\xba\xbb", NULL, NULL, NULL,
  "\xe1\xbb\x89", NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\x8f", NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbb\xa7", NULL, NULL, NULL,
  "\xe1\xbb\xb7"
};

static const char *grn_nfkc170_compose_prefix_cc89_table_c3[] = {
  "\xe1\xba\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbb\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, "\xe1\xbb\x95"
};

static const char *grn_nfkc170_compose_prefix_cc89_table_c6[] = {
  "\xe1\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe1\xbb\xad"
};

static inline const char *
grn_nfkc170_compose_prefix_cc89(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x61 &&
        utf8[0] <= 0x79) {
      return grn_nfkc170_compose_prefix_cc89_table_[utf8[0] - 0x61];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xc3 :
      if (utf8[1] >= 0xa2 &&
          utf8[1] <= 0xb4) {
        return grn_nfkc170_compose_prefix_cc89_table_c3[utf8[1] - 0xa2];
      }
      break;
    case 0xc4 :
      if (utf8[1] == 0x83) {
        return "\xe1\xba\xb3";
      }
      break;
    case 0xc6 :
      if (utf8[1] >= 0xa1 &&
          utf8[1] <= 0xb0) {
        return grn_nfkc170_compose_prefix_cc89_table_c6[utf8[1] - 0xa1];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc93_table_ce[] = {
  "\xe1\xbc\x80", NULL, NULL, NULL, "\xe1\xbc\x90", NULL, "\xe1\xbc\xa0", NULL,
  "\xe1\xbc\xb0", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\x80"
};

static const char *grn_nfkc170_compose_prefix_cc93_table_cf[] = {
  "\xe1\xbf\xa4", NULL, NULL, NULL, "\xe1\xbd\x90", NULL, NULL, NULL,
  "\xe1\xbd\xa0"
};

static inline const char *
grn_nfkc170_compose_prefix_cc93(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_compose_prefix_cc93_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x89) {
        return grn_nfkc170_compose_prefix_cc93_table_cf[utf8[1] - 0x81];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cc94_table_ce[] = {
  "\xe1\xbc\x81", NULL, NULL, NULL, "\xe1\xbc\x91", NULL, "\xe1\xbc\xa1", NULL,
  "\xe1\xbc\xb1", NULL, NULL, NULL, NULL, NULL, "\xe1\xbd\x81"
};

static const char *grn_nfkc170_compose_prefix_cc94_table_cf[] = {
  "\xe1\xbf\xa5", NULL, NULL, NULL, "\xe1\xbd\x91", NULL, NULL, NULL,
  "\xe1\xbd\xa1"
};

static inline const char *
grn_nfkc170_compose_prefix_cc94(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xbf) {
        return grn_nfkc170_compose_prefix_cc94_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x81 &&
          utf8[1] <= 0x89) {
        return grn_nfkc170_compose_prefix_cc94_table_cf[utf8[1] - 0x81];
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cd82_table_ce[] = {
  "\xe1\xbe\xb6", NULL, NULL, NULL, NULL, NULL, "\xe1\xbf\x86", NULL,
  "\xe1\xbf\x96"
};

static const char *grn_nfkc170_compose_prefix_cd82_table_cf[] = {
  "\xe1\xbf\xa6", NULL, NULL, NULL, "\xe1\xbf\xb6", "\xe1\xbf\x97", "\xe1\xbf\xa7"
};

static const char *grn_nfkc170_compose_prefix_cd82_table_e1bc[] = {
  "\xe1\xbc\x86", "\xe1\xbc\x87", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xa6", "\xe1\xbc\xa7", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbc\xb6", "\xe1\xbc\xb7"
};

static const char *grn_nfkc170_compose_prefix_cd82_table_e1bd[] = {
  "\xe1\xbd\x96", "\xe1\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbd\xa6", "\xe1\xbd\xa7"
};

static inline const char *
grn_nfkc170_compose_prefix_cd82(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0xb1 &&
          utf8[1] <= 0xb9) {
        return grn_nfkc170_compose_prefix_cd82_table_ce[utf8[1] - 0xb1];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x85 &&
          utf8[1] <= 0x8b) {
        return grn_nfkc170_compose_prefix_cd82_table_cf[utf8[1] - 0x85];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb1) {
          return grn_nfkc170_compose_prefix_cd82_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xa1) {
          return grn_nfkc170_compose_prefix_cd82_table_e1bd[utf8[2] - 0x90];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_cd85_table_ce[] = {
  "\xe1\xbe\xb4", NULL, "\xe1\xbf\x84", NULL, NULL, "\xe1\xbe\xb3", NULL, NULL,
  NULL, NULL, NULL, "\xe1\xbf\x83"
};

static const char *grn_nfkc170_compose_prefix_cd85_table_cf[] = {
  "\xe1\xbf\xb3", NULL, NULL, NULL, NULL, "\xe1\xbf\xb4"
};

static const char *grn_nfkc170_compose_prefix_cd85_table_e1bc[] = {
  "\xe1\xbe\x80", "\xe1\xbe\x81", "\xe1\xbe\x82", "\xe1\xbe\x83", "\xe1\xbe\x84", "\xe1\xbe\x85", "\xe1\xbe\x86", "\xe1\xbe\x87",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\x90", "\xe1\xbe\x91", "\xe1\xbe\x92", "\xe1\xbe\x93", "\xe1\xbe\x94", "\xe1\xbe\x95", "\xe1\xbe\x96", "\xe1\xbe\x97"
};

static const char *grn_nfkc170_compose_prefix_cd85_table_e1bd[] = {
  "\xe1\xbe\xa0", "\xe1\xbe\xa1", "\xe1\xbe\xa2", "\xe1\xbe\xa3", "\xe1\xbe\xa4", "\xe1\xbe\xa5", "\xe1\xbe\xa6", "\xe1\xbe\xa7",
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbe\xb2", NULL, NULL, NULL, "\xe1\xbf\x82", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe1\xbf\xb2"
};

static const char *grn_nfkc170_compose_prefix_cd85_table_e1bf[] = {
  "\xe1\xbf\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe1\xbf\xb7"
};

static inline const char *
grn_nfkc170_compose_prefix_cd85(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xce :
      if (utf8[1] >= 0xac &&
          utf8[1] <= 0xb7) {
        return grn_nfkc170_compose_prefix_cd85_table_ce[utf8[1] - 0xac];
      }
      break;
    case 0xcf :
      if (utf8[1] >= 0x89 &&
          utf8[1] <= 0x8e) {
        return grn_nfkc170_compose_prefix_cd85_table_cf[utf8[1] - 0x89];
      }
      break;
    case 0xe1 :
      switch (utf8[1]) {
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xa7) {
          return grn_nfkc170_compose_prefix_cd85_table_e1bc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0xa0 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_cd85_table_e1bd[utf8[2] - 0xa0];
        }
        break;
      case 0xbe :
        if (utf8[2] == 0xb6) {
          return "\xe1\xbe\xb7";
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0xb6) {
          return grn_nfkc170_compose_prefix_cd85_table_e1bf[utf8[2] - 0x86];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_ccb8_table_[] = {
  "\xe2\x89\xae", "\xe2\x89\xa0", "\xe2\x89\xaf"
};

static const char *grn_nfkc170_compose_prefix_ccb8_table_e286[] = {
  "\xe2\x86\x9a", NULL, "\xe2\x86\x9b", NULL, "\xe2\x86\xae"
};

static const char *grn_nfkc170_compose_prefix_ccb8_table_e287[] = {
  "\xe2\x87\x8d", NULL, "\xe2\x87\x8f", NULL, "\xe2\x87\x8e"
};

static const char *grn_nfkc170_compose_prefix_ccb8_table_e288[] = {
  "\xe2\x88\x84", NULL, NULL, NULL, NULL, "\xe2\x88\x89", NULL, NULL,
  "\xe2\x88\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x88\xa4", NULL, "\xe2\x88\xa6", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe2\x89\x81"
};

static const char *grn_nfkc170_compose_prefix_ccb8_table_e289[] = {
  "\xe2\x89\x84", NULL, "\xe2\x89\x87", NULL, NULL, "\xe2\x89\x89", NULL, NULL,
  NULL, NULL, "\xe2\x89\xad", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe2\x89\xa2", NULL,
  NULL, "\xe2\x89\xb0", "\xe2\x89\xb1", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe2\x89\xb4",
  "\xe2\x89\xb5", NULL, NULL, "\xe2\x89\xb8", "\xe2\x89\xb9", NULL, NULL, "\xe2\x8a\x80",
  "\xe2\x8a\x81", "\xe2\x8b\xa0", "\xe2\x8b\xa1"
};

static const char *grn_nfkc170_compose_prefix_ccb8_table_e28a[] = {
  "\xe2\x8a\x84", "\xe2\x8a\x85", NULL, NULL, "\xe2\x8a\x88", "\xe2\x8a\x89", NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, "\xe2\x8b\xa2",
  "\xe2\x8b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x8a\xac", NULL, NULL, NULL, NULL, NULL, "\xe2\x8a\xad", "\xe2\x8a\xae",
  NULL, "\xe2\x8a\xaf", NULL, NULL, NULL, NULL, NULL, NULL,
  "\xe2\x8b\xaa", "\xe2\x8b\xab", "\xe2\x8b\xac", "\xe2\x8b\xad"
};

static inline const char *
grn_nfkc170_compose_prefix_ccb8(const unsigned char *utf8)
{
  if (utf8[0] < 0x80) {
    if (utf8[0] >= 0x3c &&
        utf8[0] <= 0x3e) {
      return grn_nfkc170_compose_prefix_ccb8_table_[utf8[0] - 0x3c];
    } else {
      return NULL;
    }
  } else {
    switch (utf8[0]) {
    case 0xe2 :
      switch (utf8[1]) {
      case 0x86 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0x94) {
          return grn_nfkc170_compose_prefix_ccb8_table_e286[utf8[2] - 0x90];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0x94) {
          return grn_nfkc170_compose_prefix_ccb8_table_e287[utf8[2] - 0x90];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_ccb8_table_e288[utf8[2] - 0x83];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x83 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_compose_prefix_ccb8_table_e289[utf8[2] - 0x83];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x82 &&
            utf8[2] <= 0xb5) {
          return grn_nfkc170_compose_prefix_ccb8_table_e28a[utf8[2] - 0x82];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e38299_table_e381[] = {
  "\xe3\x82\x94", NULL, NULL, NULL, NULL, "\xe3\x81\x8c", NULL, "\xe3\x81\x8e",
  NULL, "\xe3\x81\x90", NULL, "\xe3\x81\x92", NULL, "\xe3\x81\x94", NULL, "\xe3\x81\x96",
  NULL, "\xe3\x81\x98", NULL, "\xe3\x81\x9a", NULL, "\xe3\x81\x9c", NULL, "\xe3\x81\x9e",
  NULL, "\xe3\x81\xa0", NULL, "\xe3\x81\xa2", NULL, NULL, "\xe3\x81\xa5", NULL,
  "\xe3\x81\xa7", NULL, "\xe3\x81\xa9", NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe3\x81\xb0", NULL, NULL, "\xe3\x81\xb3", NULL, NULL, "\xe3\x81\xb6",
  NULL, NULL, "\xe3\x81\xb9", NULL, NULL, "\xe3\x81\xbc"
};

static const char *grn_nfkc170_compose_prefix_e38299_table_e382[] = {
  "\xe3\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, "\xe3\x83\xb4", NULL, NULL, NULL, NULL, "\xe3\x82\xac", NULL,
  "\xe3\x82\xae", NULL, "\xe3\x82\xb0", NULL, "\xe3\x82\xb2", NULL, "\xe3\x82\xb4", NULL,
  "\xe3\x82\xb6", NULL, "\xe3\x82\xb8", NULL, "\xe3\x82\xba", NULL, "\xe3\x82\xbc", NULL,
  "\xe3\x82\xbe", NULL, "\xe3\x83\x80"
};

static const char *grn_nfkc170_compose_prefix_e38299_table_e383[] = {
  "\xe3\x83\x82", NULL, NULL, "\xe3\x83\x85", NULL, "\xe3\x83\x87", NULL, "\xe3\x83\x89",
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe3\x83\x90", NULL,
  NULL, "\xe3\x83\x93", NULL, NULL, "\xe3\x83\x96", NULL, NULL, "\xe3\x83\x99",
  NULL, NULL, "\xe3\x83\x9c", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xe3\x83\xb7", "\xe3\x83\xb8",
  "\xe3\x83\xb9", "\xe3\x83\xba", NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xe3\x83\xbe"
};

static inline const char *
grn_nfkc170_compose_prefix_e38299(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe3 :
      switch (utf8[1]) {
      case 0x81 :
        if (utf8[2] >= 0x86 &&
            utf8[2] <= 0xbb) {
          return grn_nfkc170_compose_prefix_e38299_table_e381[utf8[2] - 0x86];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x9d &&
            utf8[2] <= 0xbf) {
          return grn_nfkc170_compose_prefix_e38299_table_e382[utf8[2] - 0x9d];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x81 &&
            utf8[2] <= 0xbd) {
          return grn_nfkc170_compose_prefix_e38299_table_e383[utf8[2] - 0x81];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e3829a_table_e381[] = {
  "\xe3\x81\xb1", NULL, NULL, "\xe3\x81\xb4", NULL, NULL, "\xe3\x81\xb7", NULL,
  NULL, "\xe3\x81\xba", NULL, NULL, "\xe3\x81\xbd"
};

static const char *grn_nfkc170_compose_prefix_e3829a_table_e383[] = {
  "\xe3\x83\x91", NULL, NULL, "\xe3\x83\x94", NULL, NULL, "\xe3\x83\x97", NULL,
  NULL, "\xe3\x83\x9a", NULL, NULL, "\xe3\x83\x9d"
};

static inline const char *
grn_nfkc170_compose_prefix_e3829a(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe3 :
      switch (utf8[1]) {
      case 0x81 :
        if (utf8[2] >= 0xaf &&
            utf8[2] <= 0xbb) {
          return grn_nfkc170_compose_prefix_e3829a_table_e381[utf8[2] - 0xaf];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x8f &&
            utf8[2] <= 0x9b) {
          return grn_nfkc170_compose_prefix_e3829a_table_e383[utf8[2] - 0x8f];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a1_table_e184[] = {
  "\xea\xb0\x80", "\xea\xb9\x8c", "\xeb\x82\x98", "\xeb\x8b\xa4", "\xeb\x94\xb0", "\xeb\x9d\xbc", "\xeb\xa7\x88", "\xeb\xb0\x94",
  "\xeb\xb9\xa0", "\xec\x82\xac", "\xec\x8b\xb8", "\xec\x95\x84", "\xec\x9e\x90", "\xec\xa7\x9c", "\xec\xb0\xa8", "\xec\xb9\xb4",
  "\xed\x83\x80", "\xed\x8c\x8c", "\xed\x95\x98"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a1(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a1_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab0[] = {
  "\xea\xb0\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab1[] = {
  "\xea\xb1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab2[] = {
  "\xea\xb2\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab3[] = {
  "\xea\xb3\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb3\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab4[] = {
  "\xea\xb4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab5[] = {
  "\xea\xb5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab6[] = {
  "\xea\xb6\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab7[] = {
  "\xea\xb7\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab8[] = {
  "\xea\xb8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eab9[] = {
  "\xea\xb9\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eaba[] = {
  "\xea\xba\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xba\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eabb[] = {
  "\xea\xbb\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eabc[] = {
  "\xea\xbc\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eabd[] = {
  "\xea\xbd\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eabe[] = {
  "\xea\xbe\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eabf[] = {
  "\xea\xbf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb80[] = {
  "\xeb\x80\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb81[] = {
  "\xeb\x81\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x81\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb82[] = {
  "\xeb\x82\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb83[] = {
  "\xeb\x83\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb84[] = {
  "\xeb\x84\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb85[] = {
  "\xeb\x85\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb86[] = {
  "\xeb\x86\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb87[] = {
  "\xeb\x87\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb88[] = {
  "\xeb\x88\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x88\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb89[] = {
  "\xeb\x89\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb8a[] = {
  "\xeb\x8a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb8b[] = {
  "\xeb\x8b\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb8c[] = {
  "\xeb\x8c\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb8d[] = {
  "\xeb\x8d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb8e[] = {
  "\xeb\x8e\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb8f[] = {
  "\xeb\x8f\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8f\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb90[] = {
  "\xeb\x90\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb91[] = {
  "\xeb\x91\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb92[] = {
  "\xeb\x92\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb93[] = {
  "\xeb\x93\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb94[] = {
  "\xeb\x94\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb95[] = {
  "\xeb\x95\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb96[] = {
  "\xeb\x96\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x96\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb97[] = {
  "\xeb\x97\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb98[] = {
  "\xeb\x98\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb99[] = {
  "\xeb\x99\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb9a[] = {
  "\xeb\x9a\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb9b[] = {
  "\xeb\x9b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb9c[] = {
  "\xeb\x9c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb9d[] = {
  "\xeb\x9d\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9d\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb9e[] = {
  "\xeb\x9e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eb9f[] = {
  "\xeb\x9f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba0[] = {
  "\xeb\xa0\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba1[] = {
  "\xeb\xa1\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba2[] = {
  "\xeb\xa2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba3[] = {
  "\xeb\xa3\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba4[] = {
  "\xeb\xa4\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa4\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba5[] = {
  "\xeb\xa5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba6[] = {
  "\xeb\xa6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba7[] = {
  "\xeb\xa7\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba8[] = {
  "\xeb\xa8\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eba9[] = {
  "\xeb\xa9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebaa[] = {
  "\xeb\xaa\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebab[] = {
  "\xeb\xab\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xab\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebac[] = {
  "\xeb\xac\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebad[] = {
  "\xeb\xad\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebae[] = {
  "\xeb\xae\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebaf[] = {
  "\xeb\xaf\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb0[] = {
  "\xeb\xb0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb1[] = {
  "\xeb\xb1\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb2[] = {
  "\xeb\xb2\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb2\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb3[] = {
  "\xeb\xb3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb4[] = {
  "\xeb\xb4\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb5[] = {
  "\xeb\xb5\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb6[] = {
  "\xeb\xb6\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb7[] = {
  "\xeb\xb7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb8[] = {
  "\xeb\xb8\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebb9[] = {
  "\xeb\xb9\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb9\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebba[] = {
  "\xeb\xba\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebbb[] = {
  "\xeb\xbb\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebbc[] = {
  "\xeb\xbc\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebbd[] = {
  "\xeb\xbd\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebbe[] = {
  "\xeb\xbe\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ebbf[] = {
  "\xeb\xbf\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec80[] = {
  "\xec\x80\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x80\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec81[] = {
  "\xec\x81\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec82[] = {
  "\xec\x82\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec83[] = {
  "\xec\x83\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec84[] = {
  "\xec\x84\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec85[] = {
  "\xec\x85\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec86[] = {
  "\xec\x86\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec87[] = {
  "\xec\x87\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x87\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec88[] = {
  "\xec\x88\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec89[] = {
  "\xec\x89\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec8a[] = {
  "\xec\x8a\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec8b[] = {
  "\xec\x8b\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec8c[] = {
  "\xec\x8c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec8d[] = {
  "\xec\x8d\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec8e[] = {
  "\xec\x8e\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8e\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec8f[] = {
  "\xec\x8f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec90[] = {
  "\xec\x90\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec91[] = {
  "\xec\x91\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec92[] = {
  "\xec\x92\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec93[] = {
  "\xec\x93\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec94[] = {
  "\xec\x94\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec95[] = {
  "\xec\x95\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x95\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec96[] = {
  "\xec\x96\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec97[] = {
  "\xec\x97\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec98[] = {
  "\xec\x98\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec99[] = {
  "\xec\x99\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec9a[] = {
  "\xec\x9a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec9b[] = {
  "\xec\x9b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec9c[] = {
  "\xec\x9c\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9c\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec9d[] = {
  "\xec\x9d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec9e[] = {
  "\xec\x9e\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ec9f[] = {
  "\xec\x9f\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca0[] = {
  "\xec\xa0\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca1[] = {
  "\xec\xa1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca2[] = {
  "\xec\xa2\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca3[] = {
  "\xec\xa3\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa3\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca4[] = {
  "\xec\xa4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca5[] = {
  "\xec\xa5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca6[] = {
  "\xec\xa6\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca7[] = {
  "\xec\xa7\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca8[] = {
  "\xec\xa8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_eca9[] = {
  "\xec\xa9\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecaa[] = {
  "\xec\xaa\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaa\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecab[] = {
  "\xec\xab\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecac[] = {
  "\xec\xac\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecad[] = {
  "\xec\xad\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecae[] = {
  "\xec\xae\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecaf[] = {
  "\xec\xaf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb0[] = {
  "\xec\xb0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb1[] = {
  "\xec\xb1\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb1\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb2[] = {
  "\xec\xb2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb3[] = {
  "\xec\xb3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb4[] = {
  "\xec\xb4\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb5[] = {
  "\xec\xb5\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb6[] = {
  "\xec\xb6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb7[] = {
  "\xec\xb7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb8[] = {
  "\xec\xb8\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb8\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecb9[] = {
  "\xec\xb9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecba[] = {
  "\xec\xba\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecbb[] = {
  "\xec\xbb\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecbc[] = {
  "\xec\xbc\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecbd[] = {
  "\xec\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecbe[] = {
  "\xec\xbe\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ecbf[] = {
  "\xec\xbf\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbf\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed80[] = {
  "\xed\x80\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed81[] = {
  "\xed\x81\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed82[] = {
  "\xed\x82\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed83[] = {
  "\xed\x83\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed84[] = {
  "\xed\x84\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed85[] = {
  "\xed\x85\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed86[] = {
  "\xed\x86\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x86\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed87[] = {
  "\xed\x87\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed88[] = {
  "\xed\x88\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed89[] = {
  "\xed\x89\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed8a[] = {
  "\xed\x8a\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed8b[] = {
  "\xed\x8b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed8c[] = {
  "\xed\x8c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed8d[] = {
  "\xed\x8d\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8d\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed8e[] = {
  "\xed\x8e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed8f[] = {
  "\xed\x8f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed90[] = {
  "\xed\x90\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed91[] = {
  "\xed\x91\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed92[] = {
  "\xed\x92\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed93[] = {
  "\xed\x93\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed94[] = {
  "\xed\x94\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x94\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed95[] = {
  "\xed\x95\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed96[] = {
  "\xed\x96\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xad"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed97[] = {
  "\xed\x97\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed98[] = {
  "\xed\x98\x81", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\x9d", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed99[] = {
  "\xed\x99\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed9a[] = {
  "\xed\x9a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed9b[] = {
  "\xed\x9b\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9b\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed9c[] = {
  "\xed\x9c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186a8_table_ed9d[] = {
  "\xed\x9d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xad"
};

static inline const char *
grn_nfkc170_compose_prefix_e186a8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a8_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x89";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab0[] = {
  "\xea\xb0\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab1[] = {
  "\xea\xb1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab2[] = {
  "\xea\xb2\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab3[] = {
  "\xea\xb3\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb3\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab4[] = {
  "\xea\xb4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab5[] = {
  "\xea\xb5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab6[] = {
  "\xea\xb6\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab7[] = {
  "\xea\xb7\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab8[] = {
  "\xea\xb8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eab9[] = {
  "\xea\xb9\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eaba[] = {
  "\xea\xba\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xba\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eabb[] = {
  "\xea\xbb\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eabc[] = {
  "\xea\xbc\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eabd[] = {
  "\xea\xbd\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eabe[] = {
  "\xea\xbe\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eabf[] = {
  "\xea\xbf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb80[] = {
  "\xeb\x80\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb81[] = {
  "\xeb\x81\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x81\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb82[] = {
  "\xeb\x82\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb83[] = {
  "\xeb\x83\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb84[] = {
  "\xeb\x84\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb85[] = {
  "\xeb\x85\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb86[] = {
  "\xeb\x86\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb87[] = {
  "\xeb\x87\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb88[] = {
  "\xeb\x88\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x88\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb89[] = {
  "\xeb\x89\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb8a[] = {
  "\xeb\x8a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb8b[] = {
  "\xeb\x8b\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb8c[] = {
  "\xeb\x8c\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb8d[] = {
  "\xeb\x8d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb8e[] = {
  "\xeb\x8e\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb8f[] = {
  "\xeb\x8f\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8f\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb90[] = {
  "\xeb\x90\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb91[] = {
  "\xeb\x91\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb92[] = {
  "\xeb\x92\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb93[] = {
  "\xeb\x93\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb94[] = {
  "\xeb\x94\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb95[] = {
  "\xeb\x95\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb96[] = {
  "\xeb\x96\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x96\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb97[] = {
  "\xeb\x97\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb98[] = {
  "\xeb\x98\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb99[] = {
  "\xeb\x99\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb9a[] = {
  "\xeb\x9a\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb9b[] = {
  "\xeb\x9b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb9c[] = {
  "\xeb\x9c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb9d[] = {
  "\xeb\x9d\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9d\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb9e[] = {
  "\xeb\x9e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eb9f[] = {
  "\xeb\x9f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba0[] = {
  "\xeb\xa0\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba1[] = {
  "\xeb\xa1\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba2[] = {
  "\xeb\xa2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba3[] = {
  "\xeb\xa3\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba4[] = {
  "\xeb\xa4\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa4\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba5[] = {
  "\xeb\xa5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba6[] = {
  "\xeb\xa6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba7[] = {
  "\xeb\xa7\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba8[] = {
  "\xeb\xa8\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eba9[] = {
  "\xeb\xa9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebaa[] = {
  "\xeb\xaa\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebab[] = {
  "\xeb\xab\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xab\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebac[] = {
  "\xeb\xac\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebad[] = {
  "\xeb\xad\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebae[] = {
  "\xeb\xae\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebaf[] = {
  "\xeb\xaf\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb0[] = {
  "\xeb\xb0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb1[] = {
  "\xeb\xb1\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb2[] = {
  "\xeb\xb2\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb2\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb3[] = {
  "\xeb\xb3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb4[] = {
  "\xeb\xb4\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb5[] = {
  "\xeb\xb5\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb6[] = {
  "\xeb\xb6\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb7[] = {
  "\xeb\xb7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb8[] = {
  "\xeb\xb8\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebb9[] = {
  "\xeb\xb9\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb9\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebba[] = {
  "\xeb\xba\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebbb[] = {
  "\xeb\xbb\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebbc[] = {
  "\xeb\xbc\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebbd[] = {
  "\xeb\xbd\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebbe[] = {
  "\xeb\xbe\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ebbf[] = {
  "\xeb\xbf\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec80[] = {
  "\xec\x80\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x80\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec81[] = {
  "\xec\x81\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec82[] = {
  "\xec\x82\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec83[] = {
  "\xec\x83\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec84[] = {
  "\xec\x84\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec85[] = {
  "\xec\x85\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec86[] = {
  "\xec\x86\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec87[] = {
  "\xec\x87\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x87\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec88[] = {
  "\xec\x88\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec89[] = {
  "\xec\x89\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec8a[] = {
  "\xec\x8a\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec8b[] = {
  "\xec\x8b\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec8c[] = {
  "\xec\x8c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec8d[] = {
  "\xec\x8d\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec8e[] = {
  "\xec\x8e\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8e\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec8f[] = {
  "\xec\x8f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec90[] = {
  "\xec\x90\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec91[] = {
  "\xec\x91\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec92[] = {
  "\xec\x92\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec93[] = {
  "\xec\x93\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec94[] = {
  "\xec\x94\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec95[] = {
  "\xec\x95\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x95\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec96[] = {
  "\xec\x96\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec97[] = {
  "\xec\x97\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec98[] = {
  "\xec\x98\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec99[] = {
  "\xec\x99\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec9a[] = {
  "\xec\x9a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec9b[] = {
  "\xec\x9b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec9c[] = {
  "\xec\x9c\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9c\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec9d[] = {
  "\xec\x9d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec9e[] = {
  "\xec\x9e\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ec9f[] = {
  "\xec\x9f\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca0[] = {
  "\xec\xa0\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca1[] = {
  "\xec\xa1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca2[] = {
  "\xec\xa2\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca3[] = {
  "\xec\xa3\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa3\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca4[] = {
  "\xec\xa4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca5[] = {
  "\xec\xa5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca6[] = {
  "\xec\xa6\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca7[] = {
  "\xec\xa7\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca8[] = {
  "\xec\xa8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_eca9[] = {
  "\xec\xa9\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecaa[] = {
  "\xec\xaa\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaa\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecab[] = {
  "\xec\xab\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecac[] = {
  "\xec\xac\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecad[] = {
  "\xec\xad\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecae[] = {
  "\xec\xae\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecaf[] = {
  "\xec\xaf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb0[] = {
  "\xec\xb0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb1[] = {
  "\xec\xb1\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb1\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb2[] = {
  "\xec\xb2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb3[] = {
  "\xec\xb3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb4[] = {
  "\xec\xb4\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb5[] = {
  "\xec\xb5\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb6[] = {
  "\xec\xb6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb7[] = {
  "\xec\xb7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb8[] = {
  "\xec\xb8\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb8\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecb9[] = {
  "\xec\xb9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecba[] = {
  "\xec\xba\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecbb[] = {
  "\xec\xbb\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecbc[] = {
  "\xec\xbc\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecbd[] = {
  "\xec\xbd\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecbe[] = {
  "\xec\xbe\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ecbf[] = {
  "\xec\xbf\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbf\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed80[] = {
  "\xed\x80\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed81[] = {
  "\xed\x81\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed82[] = {
  "\xed\x82\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed83[] = {
  "\xed\x83\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed84[] = {
  "\xed\x84\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed85[] = {
  "\xed\x85\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed86[] = {
  "\xed\x86\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x86\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed87[] = {
  "\xed\x87\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed88[] = {
  "\xed\x88\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed89[] = {
  "\xed\x89\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed8a[] = {
  "\xed\x8a\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed8b[] = {
  "\xed\x8b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed8c[] = {
  "\xed\x8c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed8d[] = {
  "\xed\x8d\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8d\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed8e[] = {
  "\xed\x8e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed8f[] = {
  "\xed\x8f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed90[] = {
  "\xed\x90\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed91[] = {
  "\xed\x91\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed92[] = {
  "\xed\x92\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed93[] = {
  "\xed\x93\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed94[] = {
  "\xed\x94\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x94\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed95[] = {
  "\xed\x95\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed96[] = {
  "\xed\x96\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xae"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed97[] = {
  "\xed\x97\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed98[] = {
  "\xed\x98\x82", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\x9e", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xba"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed99[] = {
  "\xed\x99\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed9a[] = {
  "\xed\x9a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed9b[] = {
  "\xed\x9b\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9b\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed9c[] = {
  "\xed\x9c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186a9_table_ed9d[] = {
  "\xed\x9d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xae"
};

static inline const char *
grn_nfkc170_compose_prefix_e186a9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186a9_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8a";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab0[] = {
  "\xea\xb0\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab1[] = {
  "\xea\xb1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab2[] = {
  "\xea\xb2\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab3[] = {
  "\xea\xb3\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb3\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab4[] = {
  "\xea\xb4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab5[] = {
  "\xea\xb5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab6[] = {
  "\xea\xb6\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab7[] = {
  "\xea\xb7\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab8[] = {
  "\xea\xb8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eab9[] = {
  "\xea\xb9\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eaba[] = {
  "\xea\xba\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xba\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eabb[] = {
  "\xea\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eabc[] = {
  "\xea\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eabd[] = {
  "\xea\xbd\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eabe[] = {
  "\xea\xbe\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eabf[] = {
  "\xea\xbf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb80[] = {
  "\xeb\x80\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb81[] = {
  "\xeb\x81\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x81\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb82[] = {
  "\xeb\x82\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb83[] = {
  "\xeb\x83\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb84[] = {
  "\xeb\x84\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb85[] = {
  "\xeb\x85\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb86[] = {
  "\xeb\x86\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb87[] = {
  "\xeb\x87\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb88[] = {
  "\xeb\x88\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x88\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb89[] = {
  "\xeb\x89\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb8a[] = {
  "\xeb\x8a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb8b[] = {
  "\xeb\x8b\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb8c[] = {
  "\xeb\x8c\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb8d[] = {
  "\xeb\x8d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb8e[] = {
  "\xeb\x8e\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb8f[] = {
  "\xeb\x8f\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8f\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb90[] = {
  "\xeb\x90\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb91[] = {
  "\xeb\x91\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb92[] = {
  "\xeb\x92\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb93[] = {
  "\xeb\x93\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb94[] = {
  "\xeb\x94\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb95[] = {
  "\xeb\x95\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb96[] = {
  "\xeb\x96\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x96\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb97[] = {
  "\xeb\x97\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb98[] = {
  "\xeb\x98\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb99[] = {
  "\xeb\x99\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb9a[] = {
  "\xeb\x9a\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb9b[] = {
  "\xeb\x9b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb9c[] = {
  "\xeb\x9c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb9d[] = {
  "\xeb\x9d\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9d\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb9e[] = {
  "\xeb\x9e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eb9f[] = {
  "\xeb\x9f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba0[] = {
  "\xeb\xa0\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba1[] = {
  "\xeb\xa1\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba2[] = {
  "\xeb\xa2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba3[] = {
  "\xeb\xa3\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba4[] = {
  "\xeb\xa4\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa4\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba5[] = {
  "\xeb\xa5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba6[] = {
  "\xeb\xa6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba7[] = {
  "\xeb\xa7\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba8[] = {
  "\xeb\xa8\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eba9[] = {
  "\xeb\xa9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebaa[] = {
  "\xeb\xaa\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebab[] = {
  "\xeb\xab\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xab\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebac[] = {
  "\xeb\xac\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebad[] = {
  "\xeb\xad\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebae[] = {
  "\xeb\xae\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebaf[] = {
  "\xeb\xaf\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb0[] = {
  "\xeb\xb0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb1[] = {
  "\xeb\xb1\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb2[] = {
  "\xeb\xb2\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb2\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb3[] = {
  "\xeb\xb3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb4[] = {
  "\xeb\xb4\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb5[] = {
  "\xeb\xb5\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb6[] = {
  "\xeb\xb6\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb7[] = {
  "\xeb\xb7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb8[] = {
  "\xeb\xb8\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebb9[] = {
  "\xeb\xb9\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb9\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebba[] = {
  "\xeb\xba\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebbb[] = {
  "\xeb\xbb\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebbc[] = {
  "\xeb\xbc\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebbd[] = {
  "\xeb\xbd\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebbe[] = {
  "\xeb\xbe\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ebbf[] = {
  "\xeb\xbf\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec80[] = {
  "\xec\x80\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x80\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec81[] = {
  "\xec\x81\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec82[] = {
  "\xec\x82\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec83[] = {
  "\xec\x83\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec84[] = {
  "\xec\x84\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec85[] = {
  "\xec\x85\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec86[] = {
  "\xec\x86\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec87[] = {
  "\xec\x87\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x87\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec88[] = {
  "\xec\x88\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec89[] = {
  "\xec\x89\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec8a[] = {
  "\xec\x8a\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec8b[] = {
  "\xec\x8b\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec8c[] = {
  "\xec\x8c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec8d[] = {
  "\xec\x8d\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec8e[] = {
  "\xec\x8e\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8e\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec8f[] = {
  "\xec\x8f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec90[] = {
  "\xec\x90\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec91[] = {
  "\xec\x91\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec92[] = {
  "\xec\x92\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec93[] = {
  "\xec\x93\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec94[] = {
  "\xec\x94\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec95[] = {
  "\xec\x95\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x95\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec96[] = {
  "\xec\x96\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec97[] = {
  "\xec\x97\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec98[] = {
  "\xec\x98\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec99[] = {
  "\xec\x99\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec9a[] = {
  "\xec\x9a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec9b[] = {
  "\xec\x9b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec9c[] = {
  "\xec\x9c\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9c\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec9d[] = {
  "\xec\x9d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec9e[] = {
  "\xec\x9e\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ec9f[] = {
  "\xec\x9f\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca0[] = {
  "\xec\xa0\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca1[] = {
  "\xec\xa1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca2[] = {
  "\xec\xa2\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca3[] = {
  "\xec\xa3\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa3\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca4[] = {
  "\xec\xa4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca5[] = {
  "\xec\xa5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca6[] = {
  "\xec\xa6\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca7[] = {
  "\xec\xa7\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca8[] = {
  "\xec\xa8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_eca9[] = {
  "\xec\xa9\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecaa[] = {
  "\xec\xaa\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaa\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecab[] = {
  "\xec\xab\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecac[] = {
  "\xec\xac\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecad[] = {
  "\xec\xad\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecae[] = {
  "\xec\xae\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecaf[] = {
  "\xec\xaf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb0[] = {
  "\xec\xb0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb1[] = {
  "\xec\xb1\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb1\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb2[] = {
  "\xec\xb2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb3[] = {
  "\xec\xb3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb4[] = {
  "\xec\xb4\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb5[] = {
  "\xec\xb5\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb6[] = {
  "\xec\xb6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb7[] = {
  "\xec\xb7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb8[] = {
  "\xec\xb8\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb8\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecb9[] = {
  "\xec\xb9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecba[] = {
  "\xec\xba\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecbb[] = {
  "\xec\xbb\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecbc[] = {
  "\xec\xbc\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecbd[] = {
  "\xec\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecbe[] = {
  "\xec\xbe\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ecbf[] = {
  "\xec\xbf\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbf\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed80[] = {
  "\xed\x80\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed81[] = {
  "\xed\x81\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed82[] = {
  "\xed\x82\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed83[] = {
  "\xed\x83\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed84[] = {
  "\xed\x84\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed85[] = {
  "\xed\x85\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed86[] = {
  "\xed\x86\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x86\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed87[] = {
  "\xed\x87\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed88[] = {
  "\xed\x88\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed89[] = {
  "\xed\x89\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed8a[] = {
  "\xed\x8a\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed8b[] = {
  "\xed\x8b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed8c[] = {
  "\xed\x8c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed8d[] = {
  "\xed\x8d\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8d\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed8e[] = {
  "\xed\x8e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed8f[] = {
  "\xed\x8f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed90[] = {
  "\xed\x90\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed91[] = {
  "\xed\x91\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed92[] = {
  "\xed\x92\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed93[] = {
  "\xed\x93\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed94[] = {
  "\xed\x94\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x94\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed95[] = {
  "\xed\x95\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed96[] = {
  "\xed\x96\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed97[] = {
  "\xed\x97\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed98[] = {
  "\xed\x98\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\x9f", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed99[] = {
  "\xed\x99\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed9a[] = {
  "\xed\x9a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xab"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed9b[] = {
  "\xed\x9b\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9b\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed9c[] = {
  "\xed\x9c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186aa_table_ed9d[] = {
  "\xed\x9d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xaf"
};

static inline const char *
grn_nfkc170_compose_prefix_e186aa(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186aa_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab0[] = {
  "\xea\xb0\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab1[] = {
  "\xea\xb1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab2[] = {
  "\xea\xb2\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab3[] = {
  "\xea\xb3\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab4[] = {
  "\xea\xb4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab5[] = {
  "\xea\xb5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab6[] = {
  "\xea\xb6\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab7[] = {
  "\xea\xb7\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab8[] = {
  "\xea\xb8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eab9[] = {
  "\xea\xb9\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eaba[] = {
  "\xea\xba\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eabb[] = {
  "\xea\xbb\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eabc[] = {
  "\xea\xbc\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eabd[] = {
  "\xea\xbd\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eabe[] = {
  "\xea\xbe\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eabf[] = {
  "\xea\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb80[] = {
  "\xeb\x80\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb81[] = {
  "\xeb\x81\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb82[] = {
  "\xeb\x82\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb83[] = {
  "\xeb\x83\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb84[] = {
  "\xeb\x84\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb85[] = {
  "\xeb\x85\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb86[] = {
  "\xeb\x86\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb87[] = {
  "\xeb\x87\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb88[] = {
  "\xeb\x88\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb89[] = {
  "\xeb\x89\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb8a[] = {
  "\xeb\x8a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb8b[] = {
  "\xeb\x8b\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb8c[] = {
  "\xeb\x8c\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb8d[] = {
  "\xeb\x8d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb8e[] = {
  "\xeb\x8e\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb8f[] = {
  "\xeb\x8f\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb90[] = {
  "\xeb\x90\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb91[] = {
  "\xeb\x91\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb92[] = {
  "\xeb\x92\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb93[] = {
  "\xeb\x93\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb94[] = {
  "\xeb\x94\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb95[] = {
  "\xeb\x95\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb96[] = {
  "\xeb\x96\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb97[] = {
  "\xeb\x97\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb98[] = {
  "\xeb\x98\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb99[] = {
  "\xeb\x99\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb9a[] = {
  "\xeb\x9a\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb9b[] = {
  "\xeb\x9b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb9c[] = {
  "\xeb\x9c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb9d[] = {
  "\xeb\x9d\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb9e[] = {
  "\xeb\x9e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eb9f[] = {
  "\xeb\x9f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba0[] = {
  "\xeb\xa0\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba1[] = {
  "\xeb\xa1\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba2[] = {
  "\xeb\xa2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba3[] = {
  "\xeb\xa3\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba4[] = {
  "\xeb\xa4\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba5[] = {
  "\xeb\xa5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba6[] = {
  "\xeb\xa6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba7[] = {
  "\xeb\xa7\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba8[] = {
  "\xeb\xa8\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eba9[] = {
  "\xeb\xa9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebaa[] = {
  "\xeb\xaa\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebab[] = {
  "\xeb\xab\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebac[] = {
  "\xeb\xac\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebad[] = {
  "\xeb\xad\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebae[] = {
  "\xeb\xae\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebaf[] = {
  "\xeb\xaf\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb0[] = {
  "\xeb\xb0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb1[] = {
  "\xeb\xb1\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb2[] = {
  "\xeb\xb2\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb3[] = {
  "\xeb\xb3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb4[] = {
  "\xeb\xb4\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb5[] = {
  "\xeb\xb5\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb6[] = {
  "\xeb\xb6\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb7[] = {
  "\xeb\xb7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb8[] = {
  "\xeb\xb8\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebb9[] = {
  "\xeb\xb9\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebba[] = {
  "\xeb\xba\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebbb[] = {
  "\xeb\xbb\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebbc[] = {
  "\xeb\xbc\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebbd[] = {
  "\xeb\xbd\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebbe[] = {
  "\xeb\xbe\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ebbf[] = {
  "\xeb\xbf\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec80[] = {
  "\xec\x80\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec81[] = {
  "\xec\x81\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec82[] = {
  "\xec\x82\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec83[] = {
  "\xec\x83\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec84[] = {
  "\xec\x84\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec85[] = {
  "\xec\x85\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec86[] = {
  "\xec\x86\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec87[] = {
  "\xec\x87\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec88[] = {
  "\xec\x88\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec89[] = {
  "\xec\x89\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec8a[] = {
  "\xec\x8a\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec8b[] = {
  "\xec\x8b\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec8c[] = {
  "\xec\x8c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec8d[] = {
  "\xec\x8d\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec8e[] = {
  "\xec\x8e\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec8f[] = {
  "\xec\x8f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec90[] = {
  "\xec\x90\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec91[] = {
  "\xec\x91\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec92[] = {
  "\xec\x92\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec93[] = {
  "\xec\x93\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec94[] = {
  "\xec\x94\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec95[] = {
  "\xec\x95\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec96[] = {
  "\xec\x96\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec97[] = {
  "\xec\x97\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec98[] = {
  "\xec\x98\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec99[] = {
  "\xec\x99\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec9a[] = {
  "\xec\x9a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec9b[] = {
  "\xec\x9b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec9c[] = {
  "\xec\x9c\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec9d[] = {
  "\xec\x9d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec9e[] = {
  "\xec\x9e\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ec9f[] = {
  "\xec\x9f\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca0[] = {
  "\xec\xa0\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca1[] = {
  "\xec\xa1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca2[] = {
  "\xec\xa2\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca3[] = {
  "\xec\xa3\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca4[] = {
  "\xec\xa4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca5[] = {
  "\xec\xa5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca6[] = {
  "\xec\xa6\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca7[] = {
  "\xec\xa7\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca8[] = {
  "\xec\xa8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_eca9[] = {
  "\xec\xa9\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecaa[] = {
  "\xec\xaa\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecab[] = {
  "\xec\xab\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecac[] = {
  "\xec\xac\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecad[] = {
  "\xec\xad\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecae[] = {
  "\xec\xae\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecaf[] = {
  "\xec\xaf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb0[] = {
  "\xec\xb0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb1[] = {
  "\xec\xb1\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb2[] = {
  "\xec\xb2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb3[] = {
  "\xec\xb3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb4[] = {
  "\xec\xb4\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb5[] = {
  "\xec\xb5\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb6[] = {
  "\xec\xb6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb7[] = {
  "\xec\xb7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb8[] = {
  "\xec\xb8\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecb9[] = {
  "\xec\xb9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecba[] = {
  "\xec\xba\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecbb[] = {
  "\xec\xbb\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecbc[] = {
  "\xec\xbc\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecbd[] = {
  "\xec\xbd\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecbe[] = {
  "\xec\xbe\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ecbf[] = {
  "\xec\xbf\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed80[] = {
  "\xed\x80\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed81[] = {
  "\xed\x81\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed82[] = {
  "\xed\x82\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed83[] = {
  "\xed\x83\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed84[] = {
  "\xed\x84\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed85[] = {
  "\xed\x85\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed86[] = {
  "\xed\x86\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed87[] = {
  "\xed\x87\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed88[] = {
  "\xed\x88\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed89[] = {
  "\xed\x89\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed8a[] = {
  "\xed\x8a\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed8b[] = {
  "\xed\x8b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed8c[] = {
  "\xed\x8c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed8d[] = {
  "\xed\x8d\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed8e[] = {
  "\xed\x8e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed8f[] = {
  "\xed\x8f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed90[] = {
  "\xed\x90\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed91[] = {
  "\xed\x91\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed92[] = {
  "\xed\x92\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed93[] = {
  "\xed\x93\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed94[] = {
  "\xed\x94\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed95[] = {
  "\xed\x95\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed96[] = {
  "\xed\x96\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed97[] = {
  "\xed\x97\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed98[] = {
  "\xed\x98\x84", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed99[] = {
  "\xed\x99\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed9a[] = {
  "\xed\x9a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xac"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed9b[] = {
  "\xed\x9b\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x80"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed9c[] = {
  "\xed\x9c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186ab_table_ed9d[] = {
  "\xed\x9d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb0"
};

static inline const char *
grn_nfkc170_compose_prefix_e186ab(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ab_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab0[] = {
  "\xea\xb0\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab1[] = {
  "\xea\xb1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab2[] = {
  "\xea\xb2\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab3[] = {
  "\xea\xb3\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab4[] = {
  "\xea\xb4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab5[] = {
  "\xea\xb5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab6[] = {
  "\xea\xb6\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab7[] = {
  "\xea\xb7\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab8[] = {
  "\xea\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eab9[] = {
  "\xea\xb9\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eaba[] = {
  "\xea\xba\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eabb[] = {
  "\xea\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eabc[] = {
  "\xea\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eabd[] = {
  "\xea\xbd\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eabe[] = {
  "\xea\xbe\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eabf[] = {
  "\xea\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb80[] = {
  "\xeb\x80\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb81[] = {
  "\xeb\x81\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb82[] = {
  "\xeb\x82\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb83[] = {
  "\xeb\x83\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb84[] = {
  "\xeb\x84\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb85[] = {
  "\xeb\x85\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb86[] = {
  "\xeb\x86\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb87[] = {
  "\xeb\x87\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb88[] = {
  "\xeb\x88\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb89[] = {
  "\xeb\x89\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb8a[] = {
  "\xeb\x8a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb8b[] = {
  "\xeb\x8b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb8c[] = {
  "\xeb\x8c\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb8d[] = {
  "\xeb\x8d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb8e[] = {
  "\xeb\x8e\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb8f[] = {
  "\xeb\x8f\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb90[] = {
  "\xeb\x90\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb91[] = {
  "\xeb\x91\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb92[] = {
  "\xeb\x92\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb93[] = {
  "\xeb\x93\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb94[] = {
  "\xeb\x94\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb95[] = {
  "\xeb\x95\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb96[] = {
  "\xeb\x96\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb97[] = {
  "\xeb\x97\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb98[] = {
  "\xeb\x98\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb99[] = {
  "\xeb\x99\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb9a[] = {
  "\xeb\x9a\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb9b[] = {
  "\xeb\x9b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb9c[] = {
  "\xeb\x9c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb9d[] = {
  "\xeb\x9d\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb9e[] = {
  "\xeb\x9e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eb9f[] = {
  "\xeb\x9f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba0[] = {
  "\xeb\xa0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba1[] = {
  "\xeb\xa1\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba2[] = {
  "\xeb\xa2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba3[] = {
  "\xeb\xa3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba4[] = {
  "\xeb\xa4\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba5[] = {
  "\xeb\xa5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba6[] = {
  "\xeb\xa6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba7[] = {
  "\xeb\xa7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba8[] = {
  "\xeb\xa8\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eba9[] = {
  "\xeb\xa9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebaa[] = {
  "\xeb\xaa\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebab[] = {
  "\xeb\xab\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebac[] = {
  "\xeb\xac\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebad[] = {
  "\xeb\xad\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebae[] = {
  "\xeb\xae\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebaf[] = {
  "\xeb\xaf\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb0[] = {
  "\xeb\xb0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb1[] = {
  "\xeb\xb1\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb2[] = {
  "\xeb\xb2\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb3[] = {
  "\xeb\xb3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb4[] = {
  "\xeb\xb4\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb5[] = {
  "\xeb\xb5\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb6[] = {
  "\xeb\xb6\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb7[] = {
  "\xeb\xb7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb8[] = {
  "\xeb\xb8\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebb9[] = {
  "\xeb\xb9\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebba[] = {
  "\xeb\xba\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebbb[] = {
  "\xeb\xbb\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebbc[] = {
  "\xeb\xbc\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebbd[] = {
  "\xeb\xbd\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebbe[] = {
  "\xeb\xbe\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ebbf[] = {
  "\xeb\xbf\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec80[] = {
  "\xec\x80\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec81[] = {
  "\xec\x81\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec82[] = {
  "\xec\x82\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec83[] = {
  "\xec\x83\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec84[] = {
  "\xec\x84\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec85[] = {
  "\xec\x85\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec86[] = {
  "\xec\x86\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec87[] = {
  "\xec\x87\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec88[] = {
  "\xec\x88\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec89[] = {
  "\xec\x89\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec8a[] = {
  "\xec\x8a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec8b[] = {
  "\xec\x8b\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec8c[] = {
  "\xec\x8c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec8d[] = {
  "\xec\x8d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec8e[] = {
  "\xec\x8e\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec8f[] = {
  "\xec\x8f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec90[] = {
  "\xec\x90\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec91[] = {
  "\xec\x91\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec92[] = {
  "\xec\x92\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec93[] = {
  "\xec\x93\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec94[] = {
  "\xec\x94\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec95[] = {
  "\xec\x95\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec96[] = {
  "\xec\x96\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec97[] = {
  "\xec\x97\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec98[] = {
  "\xec\x98\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec99[] = {
  "\xec\x99\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec9a[] = {
  "\xec\x9a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec9b[] = {
  "\xec\x9b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec9c[] = {
  "\xec\x9c\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec9d[] = {
  "\xec\x9d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec9e[] = {
  "\xec\x9e\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ec9f[] = {
  "\xec\x9f\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca0[] = {
  "\xec\xa0\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca1[] = {
  "\xec\xa1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca2[] = {
  "\xec\xa2\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca3[] = {
  "\xec\xa3\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca4[] = {
  "\xec\xa4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca5[] = {
  "\xec\xa5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca6[] = {
  "\xec\xa6\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca7[] = {
  "\xec\xa7\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca8[] = {
  "\xec\xa8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_eca9[] = {
  "\xec\xa9\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecaa[] = {
  "\xec\xaa\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecab[] = {
  "\xec\xab\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecac[] = {
  "\xec\xac\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecad[] = {
  "\xec\xad\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecae[] = {
  "\xec\xae\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecaf[] = {
  "\xec\xaf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb0[] = {
  "\xec\xb0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb1[] = {
  "\xec\xb1\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb2[] = {
  "\xec\xb2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb3[] = {
  "\xec\xb3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb4[] = {
  "\xec\xb4\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb5[] = {
  "\xec\xb5\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb6[] = {
  "\xec\xb6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb7[] = {
  "\xec\xb7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb8[] = {
  "\xec\xb8\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecb9[] = {
  "\xec\xb9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecba[] = {
  "\xec\xba\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecbb[] = {
  "\xec\xbb\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecbc[] = {
  "\xec\xbc\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecbd[] = {
  "\xec\xbd\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecbe[] = {
  "\xec\xbe\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ecbf[] = {
  "\xec\xbf\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed80[] = {
  "\xed\x80\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed81[] = {
  "\xed\x81\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed82[] = {
  "\xed\x82\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed83[] = {
  "\xed\x83\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed84[] = {
  "\xed\x84\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed85[] = {
  "\xed\x85\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed86[] = {
  "\xed\x86\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed87[] = {
  "\xed\x87\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed88[] = {
  "\xed\x88\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed89[] = {
  "\xed\x89\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed8a[] = {
  "\xed\x8a\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed8b[] = {
  "\xed\x8b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed8c[] = {
  "\xed\x8c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed8d[] = {
  "\xed\x8d\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed8e[] = {
  "\xed\x8e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed8f[] = {
  "\xed\x8f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed90[] = {
  "\xed\x90\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed91[] = {
  "\xed\x91\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed92[] = {
  "\xed\x92\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed93[] = {
  "\xed\x93\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed94[] = {
  "\xed\x94\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed95[] = {
  "\xed\x95\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed96[] = {
  "\xed\x96\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed97[] = {
  "\xed\x97\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xa9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed98[] = {
  "\xed\x98\x85", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed99[] = {
  "\xed\x99\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed9a[] = {
  "\xed\x9a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xad"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed9b[] = {
  "\xed\x9b\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x81"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed9c[] = {
  "\xed\x9c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186ac_table_ed9d[] = {
  "\xed\x9d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb1"
};

static inline const char *
grn_nfkc170_compose_prefix_e186ac(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ac_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8d";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab0[] = {
  "\xea\xb0\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab1[] = {
  "\xea\xb1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab2[] = {
  "\xea\xb2\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab3[] = {
  "\xea\xb3\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab4[] = {
  "\xea\xb4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab5[] = {
  "\xea\xb5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab6[] = {
  "\xea\xb6\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab7[] = {
  "\xea\xb7\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab8[] = {
  "\xea\xb8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eab9[] = {
  "\xea\xb9\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eaba[] = {
  "\xea\xba\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eabb[] = {
  "\xea\xbb\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eabc[] = {
  "\xea\xbc\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eabd[] = {
  "\xea\xbd\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eabe[] = {
  "\xea\xbe\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eabf[] = {
  "\xea\xbf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb80[] = {
  "\xeb\x80\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb81[] = {
  "\xeb\x81\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb82[] = {
  "\xeb\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb83[] = {
  "\xeb\x83\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb84[] = {
  "\xeb\x84\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb85[] = {
  "\xeb\x85\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb86[] = {
  "\xeb\x86\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb87[] = {
  "\xeb\x87\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb88[] = {
  "\xeb\x88\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb89[] = {
  "\xeb\x89\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb8a[] = {
  "\xeb\x8a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb8b[] = {
  "\xeb\x8b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb8c[] = {
  "\xeb\x8c\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb8d[] = {
  "\xeb\x8d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb8e[] = {
  "\xeb\x8e\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb8f[] = {
  "\xeb\x8f\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb90[] = {
  "\xeb\x90\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb91[] = {
  "\xeb\x91\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb92[] = {
  "\xeb\x92\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb93[] = {
  "\xeb\x93\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb94[] = {
  "\xeb\x94\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb95[] = {
  "\xeb\x95\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb96[] = {
  "\xeb\x96\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb97[] = {
  "\xeb\x97\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb98[] = {
  "\xeb\x98\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb99[] = {
  "\xeb\x99\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb9a[] = {
  "\xeb\x9a\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb9b[] = {
  "\xeb\x9b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb9c[] = {
  "\xeb\x9c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb9d[] = {
  "\xeb\x9d\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb9e[] = {
  "\xeb\x9e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eb9f[] = {
  "\xeb\x9f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba0[] = {
  "\xeb\xa0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba1[] = {
  "\xeb\xa1\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba2[] = {
  "\xeb\xa2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba3[] = {
  "\xeb\xa3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba4[] = {
  "\xeb\xa4\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba5[] = {
  "\xeb\xa5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba6[] = {
  "\xeb\xa6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba7[] = {
  "\xeb\xa7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba8[] = {
  "\xeb\xa8\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eba9[] = {
  "\xeb\xa9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebaa[] = {
  "\xeb\xaa\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebab[] = {
  "\xeb\xab\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebac[] = {
  "\xeb\xac\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebad[] = {
  "\xeb\xad\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebae[] = {
  "\xeb\xae\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebaf[] = {
  "\xeb\xaf\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb0[] = {
  "\xeb\xb0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb1[] = {
  "\xeb\xb1\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb2[] = {
  "\xeb\xb2\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb3[] = {
  "\xeb\xb3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb4[] = {
  "\xeb\xb4\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb5[] = {
  "\xeb\xb5\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb6[] = {
  "\xeb\xb6\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb7[] = {
  "\xeb\xb7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb8[] = {
  "\xeb\xb8\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebb9[] = {
  "\xeb\xb9\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebba[] = {
  "\xeb\xba\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebbb[] = {
  "\xeb\xbb\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebbc[] = {
  "\xeb\xbc\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebbd[] = {
  "\xeb\xbd\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebbe[] = {
  "\xeb\xbe\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ebbf[] = {
  "\xeb\xbf\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec80[] = {
  "\xec\x80\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec81[] = {
  "\xec\x81\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec82[] = {
  "\xec\x82\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec83[] = {
  "\xec\x83\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec84[] = {
  "\xec\x84\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec85[] = {
  "\xec\x85\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec86[] = {
  "\xec\x86\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec87[] = {
  "\xec\x87\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec88[] = {
  "\xec\x88\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec89[] = {
  "\xec\x89\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec8a[] = {
  "\xec\x8a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec8b[] = {
  "\xec\x8b\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec8c[] = {
  "\xec\x8c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec8d[] = {
  "\xec\x8d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec8e[] = {
  "\xec\x8e\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec8f[] = {
  "\xec\x8f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec90[] = {
  "\xec\x90\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec91[] = {
  "\xec\x91\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec92[] = {
  "\xec\x92\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec93[] = {
  "\xec\x93\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec94[] = {
  "\xec\x94\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec95[] = {
  "\xec\x95\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec96[] = {
  "\xec\x96\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec97[] = {
  "\xec\x97\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec98[] = {
  "\xec\x98\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec99[] = {
  "\xec\x99\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec9a[] = {
  "\xec\x9a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec9b[] = {
  "\xec\x9b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec9c[] = {
  "\xec\x9c\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec9d[] = {
  "\xec\x9d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec9e[] = {
  "\xec\x9e\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ec9f[] = {
  "\xec\x9f\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca0[] = {
  "\xec\xa0\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca1[] = {
  "\xec\xa1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca2[] = {
  "\xec\xa2\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca3[] = {
  "\xec\xa3\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca4[] = {
  "\xec\xa4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca5[] = {
  "\xec\xa5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca6[] = {
  "\xec\xa6\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca7[] = {
  "\xec\xa7\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca8[] = {
  "\xec\xa8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_eca9[] = {
  "\xec\xa9\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecaa[] = {
  "\xec\xaa\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecab[] = {
  "\xec\xab\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecac[] = {
  "\xec\xac\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecad[] = {
  "\xec\xad\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecae[] = {
  "\xec\xae\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecaf[] = {
  "\xec\xaf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb0[] = {
  "\xec\xb0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb1[] = {
  "\xec\xb1\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb2[] = {
  "\xec\xb2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb3[] = {
  "\xec\xb3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb4[] = {
  "\xec\xb4\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb5[] = {
  "\xec\xb5\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb6[] = {
  "\xec\xb6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb7[] = {
  "\xec\xb7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb8[] = {
  "\xec\xb8\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecb9[] = {
  "\xec\xb9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecba[] = {
  "\xec\xba\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecbb[] = {
  "\xec\xbb\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecbc[] = {
  "\xec\xbc\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecbd[] = {
  "\xec\xbd\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecbe[] = {
  "\xec\xbe\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ecbf[] = {
  "\xec\xbf\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed80[] = {
  "\xed\x80\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed81[] = {
  "\xed\x81\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed82[] = {
  "\xed\x82\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed83[] = {
  "\xed\x83\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed84[] = {
  "\xed\x84\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed85[] = {
  "\xed\x85\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed86[] = {
  "\xed\x86\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed87[] = {
  "\xed\x87\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed88[] = {
  "\xed\x88\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed89[] = {
  "\xed\x89\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed8a[] = {
  "\xed\x8a\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed8b[] = {
  "\xed\x8b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed8c[] = {
  "\xed\x8c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed8d[] = {
  "\xed\x8d\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed8e[] = {
  "\xed\x8e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed8f[] = {
  "\xed\x8f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed90[] = {
  "\xed\x90\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed91[] = {
  "\xed\x91\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed92[] = {
  "\xed\x92\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed93[] = {
  "\xed\x93\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed94[] = {
  "\xed\x94\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed95[] = {
  "\xed\x95\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed96[] = {
  "\xed\x96\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed97[] = {
  "\xed\x97\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xaa"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed98[] = {
  "\xed\x98\x86", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed99[] = {
  "\xed\x99\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed9a[] = {
  "\xed\x9a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xae"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed9b[] = {
  "\xed\x9b\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x82"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed9c[] = {
  "\xed\x9c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xba"
};

static const char *grn_nfkc170_compose_prefix_e186ad_table_ed9d[] = {
  "\xed\x9d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb2"
};

static inline const char *
grn_nfkc170_compose_prefix_e186ad(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ad_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8e";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab0[] = {
  "\xea\xb0\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb0\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab1[] = {
  "\xea\xb1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab2[] = {
  "\xea\xb2\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab3[] = {
  "\xea\xb3\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab4[] = {
  "\xea\xb4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab5[] = {
  "\xea\xb5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab6[] = {
  "\xea\xb6\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab7[] = {
  "\xea\xb7\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb7\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab8[] = {
  "\xea\xb8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eab9[] = {
  "\xea\xb9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eaba[] = {
  "\xea\xba\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eabb[] = {
  "\xea\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eabc[] = {
  "\xea\xbc\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eabd[] = {
  "\xea\xbd\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eabe[] = {
  "\xea\xbe\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbe\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eabf[] = {
  "\xea\xbf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb80[] = {
  "\xeb\x80\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb81[] = {
  "\xeb\x81\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb82[] = {
  "\xeb\x82\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb83[] = {
  "\xeb\x83\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb84[] = {
  "\xeb\x84\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb85[] = {
  "\xeb\x85\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x85\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb86[] = {
  "\xeb\x86\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb87[] = {
  "\xeb\x87\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb88[] = {
  "\xeb\x88\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb89[] = {
  "\xeb\x89\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb8a[] = {
  "\xeb\x8a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb8b[] = {
  "\xeb\x8b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb8c[] = {
  "\xeb\x8c\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8c\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb8d[] = {
  "\xeb\x8d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb8e[] = {
  "\xeb\x8e\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb8f[] = {
  "\xeb\x8f\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb90[] = {
  "\xeb\x90\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb91[] = {
  "\xeb\x91\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb92[] = {
  "\xeb\x92\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb93[] = {
  "\xeb\x93\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x93\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb94[] = {
  "\xeb\x94\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb95[] = {
  "\xeb\x95\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb96[] = {
  "\xeb\x96\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb97[] = {
  "\xeb\x97\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb98[] = {
  "\xeb\x98\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb99[] = {
  "\xeb\x99\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb9a[] = {
  "\xeb\x9a\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9a\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb9b[] = {
  "\xeb\x9b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb9c[] = {
  "\xeb\x9c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb9d[] = {
  "\xeb\x9d\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb9e[] = {
  "\xeb\x9e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eb9f[] = {
  "\xeb\x9f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba0[] = {
  "\xeb\xa0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba1[] = {
  "\xeb\xa1\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa1\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba2[] = {
  "\xeb\xa2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba3[] = {
  "\xeb\xa3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba4[] = {
  "\xeb\xa4\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba5[] = {
  "\xeb\xa5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba6[] = {
  "\xeb\xa6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba7[] = {
  "\xeb\xa7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba8[] = {
  "\xeb\xa8\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa8\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eba9[] = {
  "\xeb\xa9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebaa[] = {
  "\xeb\xaa\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebab[] = {
  "\xeb\xab\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebac[] = {
  "\xeb\xac\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebad[] = {
  "\xeb\xad\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebae[] = {
  "\xeb\xae\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebaf[] = {
  "\xeb\xaf\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xaf\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb0[] = {
  "\xeb\xb0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb1[] = {
  "\xeb\xb1\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb2[] = {
  "\xeb\xb2\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb3[] = {
  "\xeb\xb3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb4[] = {
  "\xeb\xb4\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb5[] = {
  "\xeb\xb5\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb6[] = {
  "\xeb\xb6\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb6\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb7[] = {
  "\xeb\xb7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb8[] = {
  "\xeb\xb8\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebb9[] = {
  "\xeb\xb9\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebba[] = {
  "\xeb\xba\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebbb[] = {
  "\xeb\xbb\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebbc[] = {
  "\xeb\xbc\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebbd[] = {
  "\xeb\xbd\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbd\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebbe[] = {
  "\xeb\xbe\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ebbf[] = {
  "\xeb\xbf\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec80[] = {
  "\xec\x80\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec81[] = {
  "\xec\x81\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec82[] = {
  "\xec\x82\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec83[] = {
  "\xec\x83\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec84[] = {
  "\xec\x84\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x84\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec85[] = {
  "\xec\x85\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec86[] = {
  "\xec\x86\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec87[] = {
  "\xec\x87\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec88[] = {
  "\xec\x88\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec89[] = {
  "\xec\x89\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec8a[] = {
  "\xec\x8a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec8b[] = {
  "\xec\x8b\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8b\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec8c[] = {
  "\xec\x8c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec8d[] = {
  "\xec\x8d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec8e[] = {
  "\xec\x8e\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec8f[] = {
  "\xec\x8f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec90[] = {
  "\xec\x90\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec91[] = {
  "\xec\x91\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec92[] = {
  "\xec\x92\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x92\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec93[] = {
  "\xec\x93\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec94[] = {
  "\xec\x94\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec95[] = {
  "\xec\x95\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec96[] = {
  "\xec\x96\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec97[] = {
  "\xec\x97\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec98[] = {
  "\xec\x98\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec99[] = {
  "\xec\x99\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x99\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec9a[] = {
  "\xec\x9a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec9b[] = {
  "\xec\x9b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec9c[] = {
  "\xec\x9c\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec9d[] = {
  "\xec\x9d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec9e[] = {
  "\xec\x9e\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ec9f[] = {
  "\xec\x9f\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca0[] = {
  "\xec\xa0\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa0\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca1[] = {
  "\xec\xa1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca2[] = {
  "\xec\xa2\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca3[] = {
  "\xec\xa3\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca4[] = {
  "\xec\xa4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca5[] = {
  "\xec\xa5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca6[] = {
  "\xec\xa6\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca7[] = {
  "\xec\xa7\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa7\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca8[] = {
  "\xec\xa8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_eca9[] = {
  "\xec\xa9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecaa[] = {
  "\xec\xaa\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecab[] = {
  "\xec\xab\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecac[] = {
  "\xec\xac\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecad[] = {
  "\xec\xad\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecae[] = {
  "\xec\xae\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xae\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecaf[] = {
  "\xec\xaf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb0[] = {
  "\xec\xb0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb1[] = {
  "\xec\xb1\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb2[] = {
  "\xec\xb2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb3[] = {
  "\xec\xb3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb4[] = {
  "\xec\xb4\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb5[] = {
  "\xec\xb5\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb5\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb6[] = {
  "\xec\xb6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb7[] = {
  "\xec\xb7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb8[] = {
  "\xec\xb8\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecb9[] = {
  "\xec\xb9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecba[] = {
  "\xec\xba\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecbb[] = {
  "\xec\xbb\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecbc[] = {
  "\xec\xbc\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbc\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecbd[] = {
  "\xec\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecbe[] = {
  "\xec\xbe\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ecbf[] = {
  "\xec\xbf\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed80[] = {
  "\xed\x80\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed81[] = {
  "\xed\x81\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed82[] = {
  "\xed\x82\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed83[] = {
  "\xed\x83\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x83\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed84[] = {
  "\xed\x84\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed85[] = {
  "\xed\x85\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed86[] = {
  "\xed\x86\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed87[] = {
  "\xed\x87\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed88[] = {
  "\xed\x88\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed89[] = {
  "\xed\x89\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed8a[] = {
  "\xed\x8a\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8a\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed8b[] = {
  "\xed\x8b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed8c[] = {
  "\xed\x8c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed8d[] = {
  "\xed\x8d\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed8e[] = {
  "\xed\x8e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed8f[] = {
  "\xed\x8f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed90[] = {
  "\xed\x90\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed91[] = {
  "\xed\x91\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x91\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed92[] = {
  "\xed\x92\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed93[] = {
  "\xed\x93\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed94[] = {
  "\xed\x94\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed95[] = {
  "\xed\x95\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed96[] = {
  "\xed\x96\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed97[] = {
  "\xed\x97\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xab"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed98[] = {
  "\xed\x98\x87", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x98\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed99[] = {
  "\xed\x99\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed9a[] = {
  "\xed\x9a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed9b[] = {
  "\xed\x9b\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed9c[] = {
  "\xed\x9c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ae_table_ed9d[] = {
  "\xed\x9d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb3"
};

static inline const char *
grn_nfkc170_compose_prefix_e186ae(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ae_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x8f";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186af_table_eab0[] = {
  "\xea\xb0\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab1[] = {
  "\xea\xb1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab2[] = {
  "\xea\xb2\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab3[] = {
  "\xea\xb3\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab4[] = {
  "\xea\xb4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab5[] = {
  "\xea\xb5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab6[] = {
  "\xea\xb6\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab7[] = {
  "\xea\xb7\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab8[] = {
  "\xea\xb8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eab9[] = {
  "\xea\xb9\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eaba[] = {
  "\xea\xba\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eabb[] = {
  "\xea\xbb\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eabc[] = {
  "\xea\xbc\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eabd[] = {
  "\xea\xbd\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eabe[] = {
  "\xea\xbe\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eabf[] = {
  "\xea\xbf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb80[] = {
  "\xeb\x80\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb81[] = {
  "\xeb\x81\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb82[] = {
  "\xeb\x82\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb83[] = {
  "\xeb\x83\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb84[] = {
  "\xeb\x84\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb85[] = {
  "\xeb\x85\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb86[] = {
  "\xeb\x86\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb87[] = {
  "\xeb\x87\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb88[] = {
  "\xeb\x88\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb89[] = {
  "\xeb\x89\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb8a[] = {
  "\xeb\x8a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb8b[] = {
  "\xeb\x8b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb8c[] = {
  "\xeb\x8c\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb8d[] = {
  "\xeb\x8d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb8e[] = {
  "\xeb\x8e\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb8f[] = {
  "\xeb\x8f\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb90[] = {
  "\xeb\x90\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb91[] = {
  "\xeb\x91\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb92[] = {
  "\xeb\x92\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb93[] = {
  "\xeb\x93\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb94[] = {
  "\xeb\x94\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb95[] = {
  "\xeb\x95\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb96[] = {
  "\xeb\x96\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb97[] = {
  "\xeb\x97\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb98[] = {
  "\xeb\x98\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb99[] = {
  "\xeb\x99\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb9a[] = {
  "\xeb\x9a\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb9b[] = {
  "\xeb\x9b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb9c[] = {
  "\xeb\x9c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb9d[] = {
  "\xeb\x9d\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb9e[] = {
  "\xeb\x9e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eb9f[] = {
  "\xeb\x9f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba0[] = {
  "\xeb\xa0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba1[] = {
  "\xeb\xa1\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba2[] = {
  "\xeb\xa2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba3[] = {
  "\xeb\xa3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba4[] = {
  "\xeb\xa4\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba5[] = {
  "\xeb\xa5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba6[] = {
  "\xeb\xa6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba7[] = {
  "\xeb\xa7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba8[] = {
  "\xeb\xa8\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eba9[] = {
  "\xeb\xa9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebaa[] = {
  "\xeb\xaa\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebab[] = {
  "\xeb\xab\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebac[] = {
  "\xeb\xac\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebad[] = {
  "\xeb\xad\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebae[] = {
  "\xeb\xae\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebaf[] = {
  "\xeb\xaf\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb0[] = {
  "\xeb\xb0\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb1[] = {
  "\xeb\xb1\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb2[] = {
  "\xeb\xb2\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb3[] = {
  "\xeb\xb3\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb4[] = {
  "\xeb\xb4\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb5[] = {
  "\xeb\xb5\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb6[] = {
  "\xeb\xb6\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb7[] = {
  "\xeb\xb7\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb8[] = {
  "\xeb\xb8\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebb9[] = {
  "\xeb\xb9\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebba[] = {
  "\xeb\xba\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebbb[] = {
  "\xeb\xbb\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebbc[] = {
  "\xeb\xbc\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebbd[] = {
  "\xeb\xbd\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebbe[] = {
  "\xeb\xbe\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ebbf[] = {
  "\xeb\xbf\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec80[] = {
  "\xec\x80\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec81[] = {
  "\xec\x81\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec82[] = {
  "\xec\x82\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec83[] = {
  "\xec\x83\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec84[] = {
  "\xec\x84\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec85[] = {
  "\xec\x85\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec86[] = {
  "\xec\x86\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec87[] = {
  "\xec\x87\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec88[] = {
  "\xec\x88\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec89[] = {
  "\xec\x89\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec8a[] = {
  "\xec\x8a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec8b[] = {
  "\xec\x8b\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec8c[] = {
  "\xec\x8c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec8d[] = {
  "\xec\x8d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec8e[] = {
  "\xec\x8e\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec8f[] = {
  "\xec\x8f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec90[] = {
  "\xec\x90\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec91[] = {
  "\xec\x91\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec92[] = {
  "\xec\x92\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec93[] = {
  "\xec\x93\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec94[] = {
  "\xec\x94\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec95[] = {
  "\xec\x95\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec96[] = {
  "\xec\x96\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec97[] = {
  "\xec\x97\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec98[] = {
  "\xec\x98\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec99[] = {
  "\xec\x99\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec9a[] = {
  "\xec\x9a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec9b[] = {
  "\xec\x9b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec9c[] = {
  "\xec\x9c\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec9d[] = {
  "\xec\x9d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec9e[] = {
  "\xec\x9e\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ec9f[] = {
  "\xec\x9f\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca0[] = {
  "\xec\xa0\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca1[] = {
  "\xec\xa1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca2[] = {
  "\xec\xa2\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca3[] = {
  "\xec\xa3\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca4[] = {
  "\xec\xa4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca5[] = {
  "\xec\xa5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca6[] = {
  "\xec\xa6\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca7[] = {
  "\xec\xa7\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca8[] = {
  "\xec\xa8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_eca9[] = {
  "\xec\xa9\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecaa[] = {
  "\xec\xaa\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecab[] = {
  "\xec\xab\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecac[] = {
  "\xec\xac\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecad[] = {
  "\xec\xad\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecae[] = {
  "\xec\xae\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecaf[] = {
  "\xec\xaf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb0[] = {
  "\xec\xb0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb1[] = {
  "\xec\xb1\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb2[] = {
  "\xec\xb2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb3[] = {
  "\xec\xb3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb4[] = {
  "\xec\xb4\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb5[] = {
  "\xec\xb5\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb6[] = {
  "\xec\xb6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb7[] = {
  "\xec\xb7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb8[] = {
  "\xec\xb8\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecb9[] = {
  "\xec\xb9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecba[] = {
  "\xec\xba\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecbb[] = {
  "\xec\xbb\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecbc[] = {
  "\xec\xbc\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecbd[] = {
  "\xec\xbd\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecbe[] = {
  "\xec\xbe\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ecbf[] = {
  "\xec\xbf\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed80[] = {
  "\xed\x80\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed81[] = {
  "\xed\x81\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed82[] = {
  "\xed\x82\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed83[] = {
  "\xed\x83\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed84[] = {
  "\xed\x84\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed85[] = {
  "\xed\x85\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed86[] = {
  "\xed\x86\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed87[] = {
  "\xed\x87\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed88[] = {
  "\xed\x88\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed89[] = {
  "\xed\x89\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed8a[] = {
  "\xed\x8a\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed8b[] = {
  "\xed\x8b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed8c[] = {
  "\xed\x8c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed8d[] = {
  "\xed\x8d\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed8e[] = {
  "\xed\x8e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed8f[] = {
  "\xed\x8f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed90[] = {
  "\xed\x90\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed91[] = {
  "\xed\x91\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed92[] = {
  "\xed\x92\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed93[] = {
  "\xed\x93\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed94[] = {
  "\xed\x94\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed95[] = {
  "\xed\x95\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed96[] = {
  "\xed\x96\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed97[] = {
  "\xed\x97\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xac"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed98[] = {
  "\xed\x98\x88", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x80"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed99[] = {
  "\xed\x99\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed9a[] = {
  "\xed\x9a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed9b[] = {
  "\xed\x9b\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x84"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed9c[] = {
  "\xed\x9c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186af_table_ed9d[] = {
  "\xed\x9d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb4"
};

static inline const char *
grn_nfkc170_compose_prefix_e186af(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186af_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186af_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186af_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186af_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186af_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x90";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab0[] = {
  "\xea\xb0\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab1[] = {
  "\xea\xb1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab2[] = {
  "\xea\xb2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab3[] = {
  "\xea\xb3\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab4[] = {
  "\xea\xb4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab5[] = {
  "\xea\xb5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab6[] = {
  "\xea\xb6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab7[] = {
  "\xea\xb7\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab8[] = {
  "\xea\xb8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eab9[] = {
  "\xea\xb9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eaba[] = {
  "\xea\xba\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eabb[] = {
  "\xea\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eabc[] = {
  "\xea\xbc\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eabd[] = {
  "\xea\xbd\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eabe[] = {
  "\xea\xbe\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eabf[] = {
  "\xea\xbf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb80[] = {
  "\xeb\x80\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb81[] = {
  "\xeb\x81\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb82[] = {
  "\xeb\x82\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb83[] = {
  "\xeb\x83\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb84[] = {
  "\xeb\x84\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb85[] = {
  "\xeb\x85\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb86[] = {
  "\xeb\x86\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb87[] = {
  "\xeb\x87\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb88[] = {
  "\xeb\x88\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb89[] = {
  "\xeb\x89\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb8a[] = {
  "\xeb\x8a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb8b[] = {
  "\xeb\x8b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb8c[] = {
  "\xeb\x8c\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb8d[] = {
  "\xeb\x8d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb8e[] = {
  "\xeb\x8e\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb8f[] = {
  "\xeb\x8f\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb90[] = {
  "\xeb\x90\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb91[] = {
  "\xeb\x91\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb92[] = {
  "\xeb\x92\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb93[] = {
  "\xeb\x93\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb94[] = {
  "\xeb\x94\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb95[] = {
  "\xeb\x95\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb96[] = {
  "\xeb\x96\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb97[] = {
  "\xeb\x97\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb98[] = {
  "\xeb\x98\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb99[] = {
  "\xeb\x99\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb9a[] = {
  "\xeb\x9a\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb9b[] = {
  "\xeb\x9b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb9c[] = {
  "\xeb\x9c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb9d[] = {
  "\xeb\x9d\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb9e[] = {
  "\xeb\x9e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eb9f[] = {
  "\xeb\x9f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba0[] = {
  "\xeb\xa0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba1[] = {
  "\xeb\xa1\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba2[] = {
  "\xeb\xa2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba3[] = {
  "\xeb\xa3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba4[] = {
  "\xeb\xa4\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba5[] = {
  "\xeb\xa5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba6[] = {
  "\xeb\xa6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba7[] = {
  "\xeb\xa7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba8[] = {
  "\xeb\xa8\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eba9[] = {
  "\xeb\xa9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebaa[] = {
  "\xeb\xaa\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebab[] = {
  "\xeb\xab\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebac[] = {
  "\xeb\xac\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebad[] = {
  "\xeb\xad\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebae[] = {
  "\xeb\xae\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebaf[] = {
  "\xeb\xaf\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb0[] = {
  "\xeb\xb0\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb1[] = {
  "\xeb\xb1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb2[] = {
  "\xeb\xb2\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb3[] = {
  "\xeb\xb3\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb4[] = {
  "\xeb\xb4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb5[] = {
  "\xeb\xb5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb6[] = {
  "\xeb\xb6\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb7[] = {
  "\xeb\xb7\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb8[] = {
  "\xeb\xb8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebb9[] = {
  "\xeb\xb9\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebba[] = {
  "\xeb\xba\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebbb[] = {
  "\xeb\xbb\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebbc[] = {
  "\xeb\xbc\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebbd[] = {
  "\xeb\xbd\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebbe[] = {
  "\xeb\xbe\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ebbf[] = {
  "\xeb\xbf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec80[] = {
  "\xec\x80\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec81[] = {
  "\xec\x81\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec82[] = {
  "\xec\x82\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec83[] = {
  "\xec\x83\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec84[] = {
  "\xec\x84\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec85[] = {
  "\xec\x85\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec86[] = {
  "\xec\x86\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec87[] = {
  "\xec\x87\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec88[] = {
  "\xec\x88\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec89[] = {
  "\xec\x89\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec8a[] = {
  "\xec\x8a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec8b[] = {
  "\xec\x8b\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec8c[] = {
  "\xec\x8c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec8d[] = {
  "\xec\x8d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec8e[] = {
  "\xec\x8e\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec8f[] = {
  "\xec\x8f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec90[] = {
  "\xec\x90\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec91[] = {
  "\xec\x91\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec92[] = {
  "\xec\x92\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec93[] = {
  "\xec\x93\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec94[] = {
  "\xec\x94\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec95[] = {
  "\xec\x95\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec96[] = {
  "\xec\x96\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec97[] = {
  "\xec\x97\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec98[] = {
  "\xec\x98\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec99[] = {
  "\xec\x99\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec9a[] = {
  "\xec\x9a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec9b[] = {
  "\xec\x9b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec9c[] = {
  "\xec\x9c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec9d[] = {
  "\xec\x9d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec9e[] = {
  "\xec\x9e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ec9f[] = {
  "\xec\x9f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca0[] = {
  "\xec\xa0\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca1[] = {
  "\xec\xa1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca2[] = {
  "\xec\xa2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca3[] = {
  "\xec\xa3\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca4[] = {
  "\xec\xa4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca5[] = {
  "\xec\xa5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca6[] = {
  "\xec\xa6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca7[] = {
  "\xec\xa7\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca8[] = {
  "\xec\xa8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_eca9[] = {
  "\xec\xa9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecaa[] = {
  "\xec\xaa\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecab[] = {
  "\xec\xab\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecac[] = {
  "\xec\xac\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecad[] = {
  "\xec\xad\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecae[] = {
  "\xec\xae\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecaf[] = {
  "\xec\xaf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb0[] = {
  "\xec\xb0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb1[] = {
  "\xec\xb1\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb2[] = {
  "\xec\xb2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb3[] = {
  "\xec\xb3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb4[] = {
  "\xec\xb4\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb5[] = {
  "\xec\xb5\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb6[] = {
  "\xec\xb6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb7[] = {
  "\xec\xb7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb8[] = {
  "\xec\xb8\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecb9[] = {
  "\xec\xb9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecba[] = {
  "\xec\xba\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecbb[] = {
  "\xec\xbb\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecbc[] = {
  "\xec\xbc\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecbd[] = {
  "\xec\xbd\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecbe[] = {
  "\xec\xbe\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ecbf[] = {
  "\xec\xbf\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed80[] = {
  "\xed\x80\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed81[] = {
  "\xed\x81\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed82[] = {
  "\xed\x82\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed83[] = {
  "\xed\x83\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed84[] = {
  "\xed\x84\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed85[] = {
  "\xed\x85\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed86[] = {
  "\xed\x86\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed87[] = {
  "\xed\x87\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed88[] = {
  "\xed\x88\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed89[] = {
  "\xed\x89\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed8a[] = {
  "\xed\x8a\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed8b[] = {
  "\xed\x8b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed8c[] = {
  "\xed\x8c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed8d[] = {
  "\xed\x8d\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed8e[] = {
  "\xed\x8e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed8f[] = {
  "\xed\x8f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed90[] = {
  "\xed\x90\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed91[] = {
  "\xed\x91\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed92[] = {
  "\xed\x92\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed93[] = {
  "\xed\x93\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed94[] = {
  "\xed\x94\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed95[] = {
  "\xed\x95\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed96[] = {
  "\xed\x96\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed97[] = {
  "\xed\x97\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xad"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed98[] = {
  "\xed\x98\x89", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed99[] = {
  "\xed\x99\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed9a[] = {
  "\xed\x9a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed9b[] = {
  "\xed\x9b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed9c[] = {
  "\xed\x9c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b0_table_ed9d[] = {
  "\xed\x9d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb5"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b0_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x91";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab0[] = {
  "\xea\xb0\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab1[] = {
  "\xea\xb1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab2[] = {
  "\xea\xb2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab3[] = {
  "\xea\xb3\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab4[] = {
  "\xea\xb4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab5[] = {
  "\xea\xb5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab6[] = {
  "\xea\xb6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab7[] = {
  "\xea\xb7\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab8[] = {
  "\xea\xb8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eab9[] = {
  "\xea\xb9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eaba[] = {
  "\xea\xba\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eabb[] = {
  "\xea\xbb\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eabc[] = {
  "\xea\xbc\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eabd[] = {
  "\xea\xbd\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eabe[] = {
  "\xea\xbe\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eabf[] = {
  "\xea\xbf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb80[] = {
  "\xeb\x80\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb81[] = {
  "\xeb\x81\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb82[] = {
  "\xeb\x82\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb83[] = {
  "\xeb\x83\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb84[] = {
  "\xeb\x84\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb85[] = {
  "\xeb\x85\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb86[] = {
  "\xeb\x86\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb87[] = {
  "\xeb\x87\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb88[] = {
  "\xeb\x88\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb89[] = {
  "\xeb\x89\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb8a[] = {
  "\xeb\x8a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb8b[] = {
  "\xeb\x8b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb8c[] = {
  "\xeb\x8c\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb8d[] = {
  "\xeb\x8d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb8e[] = {
  "\xeb\x8e\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb8f[] = {
  "\xeb\x8f\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb90[] = {
  "\xeb\x90\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb91[] = {
  "\xeb\x91\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb92[] = {
  "\xeb\x92\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb93[] = {
  "\xeb\x93\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb94[] = {
  "\xeb\x94\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb95[] = {
  "\xeb\x95\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb96[] = {
  "\xeb\x96\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb97[] = {
  "\xeb\x97\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb98[] = {
  "\xeb\x98\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb99[] = {
  "\xeb\x99\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb9a[] = {
  "\xeb\x9a\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb9b[] = {
  "\xeb\x9b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb9c[] = {
  "\xeb\x9c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb9d[] = {
  "\xeb\x9d\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb9e[] = {
  "\xeb\x9e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eb9f[] = {
  "\xeb\x9f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba0[] = {
  "\xeb\xa0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba1[] = {
  "\xeb\xa1\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba2[] = {
  "\xeb\xa2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba3[] = {
  "\xeb\xa3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba4[] = {
  "\xeb\xa4\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba5[] = {
  "\xeb\xa5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba6[] = {
  "\xeb\xa6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba7[] = {
  "\xeb\xa7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba8[] = {
  "\xeb\xa8\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eba9[] = {
  "\xeb\xa9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebaa[] = {
  "\xeb\xaa\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebab[] = {
  "\xeb\xab\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebac[] = {
  "\xeb\xac\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebad[] = {
  "\xeb\xad\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebae[] = {
  "\xeb\xae\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebaf[] = {
  "\xeb\xaf\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb0[] = {
  "\xeb\xb0\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb1[] = {
  "\xeb\xb1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb2[] = {
  "\xeb\xb2\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb3[] = {
  "\xeb\xb3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb4[] = {
  "\xeb\xb4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb5[] = {
  "\xeb\xb5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb6[] = {
  "\xeb\xb6\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb7[] = {
  "\xeb\xb7\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb8[] = {
  "\xeb\xb8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebb9[] = {
  "\xeb\xb9\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebba[] = {
  "\xeb\xba\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebbb[] = {
  "\xeb\xbb\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebbc[] = {
  "\xeb\xbc\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebbd[] = {
  "\xeb\xbd\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebbe[] = {
  "\xeb\xbe\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ebbf[] = {
  "\xeb\xbf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec80[] = {
  "\xec\x80\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec81[] = {
  "\xec\x81\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec82[] = {
  "\xec\x82\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec83[] = {
  "\xec\x83\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec84[] = {
  "\xec\x84\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec85[] = {
  "\xec\x85\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec86[] = {
  "\xec\x86\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec87[] = {
  "\xec\x87\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec88[] = {
  "\xec\x88\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec89[] = {
  "\xec\x89\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec8a[] = {
  "\xec\x8a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec8b[] = {
  "\xec\x8b\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec8c[] = {
  "\xec\x8c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec8d[] = {
  "\xec\x8d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec8e[] = {
  "\xec\x8e\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec8f[] = {
  "\xec\x8f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec90[] = {
  "\xec\x90\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec91[] = {
  "\xec\x91\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec92[] = {
  "\xec\x92\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec93[] = {
  "\xec\x93\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec94[] = {
  "\xec\x94\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec95[] = {
  "\xec\x95\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec96[] = {
  "\xec\x96\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec97[] = {
  "\xec\x97\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec98[] = {
  "\xec\x98\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec99[] = {
  "\xec\x99\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec9a[] = {
  "\xec\x9a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec9b[] = {
  "\xec\x9b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec9c[] = {
  "\xec\x9c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec9d[] = {
  "\xec\x9d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec9e[] = {
  "\xec\x9e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ec9f[] = {
  "\xec\x9f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca0[] = {
  "\xec\xa0\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca1[] = {
  "\xec\xa1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca2[] = {
  "\xec\xa2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca3[] = {
  "\xec\xa3\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca4[] = {
  "\xec\xa4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca5[] = {
  "\xec\xa5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca6[] = {
  "\xec\xa6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca7[] = {
  "\xec\xa7\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca8[] = {
  "\xec\xa8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_eca9[] = {
  "\xec\xa9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecaa[] = {
  "\xec\xaa\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecab[] = {
  "\xec\xab\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecac[] = {
  "\xec\xac\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecad[] = {
  "\xec\xad\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecae[] = {
  "\xec\xae\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecaf[] = {
  "\xec\xaf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb0[] = {
  "\xec\xb0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb1[] = {
  "\xec\xb1\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb2[] = {
  "\xec\xb2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb3[] = {
  "\xec\xb3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb4[] = {
  "\xec\xb4\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb5[] = {
  "\xec\xb5\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb6[] = {
  "\xec\xb6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb7[] = {
  "\xec\xb7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb8[] = {
  "\xec\xb8\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecb9[] = {
  "\xec\xb9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecba[] = {
  "\xec\xba\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecbb[] = {
  "\xec\xbb\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecbc[] = {
  "\xec\xbc\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecbd[] = {
  "\xec\xbd\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecbe[] = {
  "\xec\xbe\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ecbf[] = {
  "\xec\xbf\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed80[] = {
  "\xed\x80\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed81[] = {
  "\xed\x81\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed82[] = {
  "\xed\x82\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed83[] = {
  "\xed\x83\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed84[] = {
  "\xed\x84\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed85[] = {
  "\xed\x85\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed86[] = {
  "\xed\x86\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed87[] = {
  "\xed\x87\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed88[] = {
  "\xed\x88\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed89[] = {
  "\xed\x89\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed8a[] = {
  "\xed\x8a\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed8b[] = {
  "\xed\x8b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed8c[] = {
  "\xed\x8c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed8d[] = {
  "\xed\x8d\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed8e[] = {
  "\xed\x8e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed8f[] = {
  "\xed\x8f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed90[] = {
  "\xed\x90\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed91[] = {
  "\xed\x91\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed92[] = {
  "\xed\x92\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed93[] = {
  "\xed\x93\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed94[] = {
  "\xed\x94\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed95[] = {
  "\xed\x95\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed96[] = {
  "\xed\x96\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed97[] = {
  "\xed\x97\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xae"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed98[] = {
  "\xed\x98\x8a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed99[] = {
  "\xed\x99\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed9a[] = {
  "\xed\x9a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed9b[] = {
  "\xed\x9b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed9c[] = {
  "\xed\x9c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b1_table_ed9d[] = {
  "\xed\x9d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb6"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b1(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b1_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x92";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab0[] = {
  "\xea\xb0\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab1[] = {
  "\xea\xb1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab2[] = {
  "\xea\xb2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab3[] = {
  "\xea\xb3\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab4[] = {
  "\xea\xb4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb4\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab5[] = {
  "\xea\xb5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab6[] = {
  "\xea\xb6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab7[] = {
  "\xea\xb7\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab8[] = {
  "\xea\xb8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eab9[] = {
  "\xea\xb9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eaba[] = {
  "\xea\xba\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eabb[] = {
  "\xea\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbb\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eabc[] = {
  "\xea\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eabd[] = {
  "\xea\xbd\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eabe[] = {
  "\xea\xbe\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eabf[] = {
  "\xea\xbf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb80[] = {
  "\xeb\x80\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb81[] = {
  "\xeb\x81\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb82[] = {
  "\xeb\x82\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x82\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb83[] = {
  "\xeb\x83\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb84[] = {
  "\xeb\x84\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb85[] = {
  "\xeb\x85\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb86[] = {
  "\xeb\x86\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb87[] = {
  "\xeb\x87\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb88[] = {
  "\xeb\x88\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb89[] = {
  "\xeb\x89\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x89\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb8a[] = {
  "\xeb\x8a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb8b[] = {
  "\xeb\x8b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb8c[] = {
  "\xeb\x8c\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb8d[] = {
  "\xeb\x8d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb8e[] = {
  "\xeb\x8e\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb8f[] = {
  "\xeb\x8f\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb90[] = {
  "\xeb\x90\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x90\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb91[] = {
  "\xeb\x91\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb92[] = {
  "\xeb\x92\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb93[] = {
  "\xeb\x93\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb94[] = {
  "\xeb\x94\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb95[] = {
  "\xeb\x95\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb96[] = {
  "\xeb\x96\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb97[] = {
  "\xeb\x97\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x97\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb98[] = {
  "\xeb\x98\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb99[] = {
  "\xeb\x99\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb9a[] = {
  "\xeb\x9a\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb9b[] = {
  "\xeb\x9b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb9c[] = {
  "\xeb\x9c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb9d[] = {
  "\xeb\x9d\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb9e[] = {
  "\xeb\x9e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9e\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eb9f[] = {
  "\xeb\x9f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba0[] = {
  "\xeb\xa0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba1[] = {
  "\xeb\xa1\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba2[] = {
  "\xeb\xa2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba3[] = {
  "\xeb\xa3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba4[] = {
  "\xeb\xa4\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba5[] = {
  "\xeb\xa5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa5\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba6[] = {
  "\xeb\xa6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba7[] = {
  "\xeb\xa7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba8[] = {
  "\xeb\xa8\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eba9[] = {
  "\xeb\xa9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebaa[] = {
  "\xeb\xaa\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebab[] = {
  "\xeb\xab\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebac[] = {
  "\xeb\xac\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xac\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebad[] = {
  "\xeb\xad\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebae[] = {
  "\xeb\xae\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebaf[] = {
  "\xeb\xaf\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb0[] = {
  "\xeb\xb0\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb1[] = {
  "\xeb\xb1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb2[] = {
  "\xeb\xb2\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb3[] = {
  "\xeb\xb3\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb3\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb4[] = {
  "\xeb\xb4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb5[] = {
  "\xeb\xb5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb6[] = {
  "\xeb\xb6\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb7[] = {
  "\xeb\xb7\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb8[] = {
  "\xeb\xb8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebb9[] = {
  "\xeb\xb9\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebba[] = {
  "\xeb\xba\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xba\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebbb[] = {
  "\xeb\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebbc[] = {
  "\xeb\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebbd[] = {
  "\xeb\xbd\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebbe[] = {
  "\xeb\xbe\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ebbf[] = {
  "\xeb\xbf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec80[] = {
  "\xec\x80\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec81[] = {
  "\xec\x81\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x81\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec82[] = {
  "\xec\x82\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec83[] = {
  "\xec\x83\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec84[] = {
  "\xec\x84\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec85[] = {
  "\xec\x85\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec86[] = {
  "\xec\x86\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec87[] = {
  "\xec\x87\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec88[] = {
  "\xec\x88\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x88\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec89[] = {
  "\xec\x89\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec8a[] = {
  "\xec\x8a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec8b[] = {
  "\xec\x8b\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec8c[] = {
  "\xec\x8c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec8d[] = {
  "\xec\x8d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec8e[] = {
  "\xec\x8e\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec8f[] = {
  "\xec\x8f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8f\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec90[] = {
  "\xec\x90\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec91[] = {
  "\xec\x91\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec92[] = {
  "\xec\x92\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec93[] = {
  "\xec\x93\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec94[] = {
  "\xec\x94\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec95[] = {
  "\xec\x95\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec96[] = {
  "\xec\x96\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x96\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec97[] = {
  "\xec\x97\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec98[] = {
  "\xec\x98\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec99[] = {
  "\xec\x99\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec9a[] = {
  "\xec\x9a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec9b[] = {
  "\xec\x9b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec9c[] = {
  "\xec\x9c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec9d[] = {
  "\xec\x9d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9d\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec9e[] = {
  "\xec\x9e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ec9f[] = {
  "\xec\x9f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca0[] = {
  "\xec\xa0\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca1[] = {
  "\xec\xa1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca2[] = {
  "\xec\xa2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca3[] = {
  "\xec\xa3\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca4[] = {
  "\xec\xa4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa4\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca5[] = {
  "\xec\xa5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca6[] = {
  "\xec\xa6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca7[] = {
  "\xec\xa7\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca8[] = {
  "\xec\xa8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_eca9[] = {
  "\xec\xa9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecaa[] = {
  "\xec\xaa\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecab[] = {
  "\xec\xab\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xab\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecac[] = {
  "\xec\xac\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecad[] = {
  "\xec\xad\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecae[] = {
  "\xec\xae\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecaf[] = {
  "\xec\xaf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb0[] = {
  "\xec\xb0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb1[] = {
  "\xec\xb1\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb2[] = {
  "\xec\xb2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb2\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb3[] = {
  "\xec\xb3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb4[] = {
  "\xec\xb4\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb5[] = {
  "\xec\xb5\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb6[] = {
  "\xec\xb6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb7[] = {
  "\xec\xb7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb8[] = {
  "\xec\xb8\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecb9[] = {
  "\xec\xb9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb9\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecba[] = {
  "\xec\xba\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecbb[] = {
  "\xec\xbb\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecbc[] = {
  "\xec\xbc\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecbd[] = {
  "\xec\xbd\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecbe[] = {
  "\xec\xbe\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ecbf[] = {
  "\xec\xbf\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed80[] = {
  "\xed\x80\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x80\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed81[] = {
  "\xed\x81\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed82[] = {
  "\xed\x82\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed83[] = {
  "\xed\x83\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed84[] = {
  "\xed\x84\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed85[] = {
  "\xed\x85\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed86[] = {
  "\xed\x86\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed87[] = {
  "\xed\x87\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x87\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed88[] = {
  "\xed\x88\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed89[] = {
  "\xed\x89\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed8a[] = {
  "\xed\x8a\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed8b[] = {
  "\xed\x8b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed8c[] = {
  "\xed\x8c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed8d[] = {
  "\xed\x8d\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed8e[] = {
  "\xed\x8e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8e\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed8f[] = {
  "\xed\x8f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed90[] = {
  "\xed\x90\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed91[] = {
  "\xed\x91\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed92[] = {
  "\xed\x92\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed93[] = {
  "\xed\x93\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed94[] = {
  "\xed\x94\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed95[] = {
  "\xed\x95\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x95\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed96[] = {
  "\xed\x96\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed97[] = {
  "\xed\x97\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xaf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed98[] = {
  "\xed\x98\x8b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed99[] = {
  "\xed\x99\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed9a[] = {
  "\xed\x9a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed9b[] = {
  "\xed\x9b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed9c[] = {
  "\xed\x9c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9c\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b2_table_ed9d[] = {
  "\xed\x9d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb7"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b2(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b2_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x93";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab0[] = {
  "\xea\xb0\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab1[] = {
  "\xea\xb1\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab2[] = {
  "\xea\xb2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab3[] = {
  "\xea\xb3\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab4[] = {
  "\xea\xb4\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab5[] = {
  "\xea\xb5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab6[] = {
  "\xea\xb6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab7[] = {
  "\xea\xb7\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab8[] = {
  "\xea\xb8\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eab9[] = {
  "\xea\xb9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eaba[] = {
  "\xea\xba\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eabb[] = {
  "\xea\xbb\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eabc[] = {
  "\xea\xbc\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eabd[] = {
  "\xea\xbd\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eabe[] = {
  "\xea\xbe\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eabf[] = {
  "\xea\xbf\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb80[] = {
  "\xeb\x80\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb81[] = {
  "\xeb\x81\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb82[] = {
  "\xeb\x82\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb83[] = {
  "\xeb\x83\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb84[] = {
  "\xeb\x84\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb85[] = {
  "\xeb\x85\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb86[] = {
  "\xeb\x86\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb87[] = {
  "\xeb\x87\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb88[] = {
  "\xeb\x88\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb89[] = {
  "\xeb\x89\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb8a[] = {
  "\xeb\x8a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb8b[] = {
  "\xeb\x8b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb8c[] = {
  "\xeb\x8c\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb8d[] = {
  "\xeb\x8d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb8e[] = {
  "\xeb\x8e\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb8f[] = {
  "\xeb\x8f\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb90[] = {
  "\xeb\x90\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb91[] = {
  "\xeb\x91\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb92[] = {
  "\xeb\x92\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb93[] = {
  "\xeb\x93\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb94[] = {
  "\xeb\x94\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb95[] = {
  "\xeb\x95\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb96[] = {
  "\xeb\x96\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb97[] = {
  "\xeb\x97\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb98[] = {
  "\xeb\x98\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb99[] = {
  "\xeb\x99\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb9a[] = {
  "\xeb\x9a\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb9b[] = {
  "\xeb\x9b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb9c[] = {
  "\xeb\x9c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb9d[] = {
  "\xeb\x9d\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb9e[] = {
  "\xeb\x9e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eb9f[] = {
  "\xeb\x9f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba0[] = {
  "\xeb\xa0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba1[] = {
  "\xeb\xa1\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba2[] = {
  "\xeb\xa2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba3[] = {
  "\xeb\xa3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba4[] = {
  "\xeb\xa4\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba5[] = {
  "\xeb\xa5\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba6[] = {
  "\xeb\xa6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba7[] = {
  "\xeb\xa7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba8[] = {
  "\xeb\xa8\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eba9[] = {
  "\xeb\xa9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebaa[] = {
  "\xeb\xaa\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebab[] = {
  "\xeb\xab\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebac[] = {
  "\xeb\xac\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebad[] = {
  "\xeb\xad\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebae[] = {
  "\xeb\xae\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebaf[] = {
  "\xeb\xaf\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb0[] = {
  "\xeb\xb0\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb1[] = {
  "\xeb\xb1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb2[] = {
  "\xeb\xb2\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb3[] = {
  "\xeb\xb3\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb4[] = {
  "\xeb\xb4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb5[] = {
  "\xeb\xb5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb6[] = {
  "\xeb\xb6\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb7[] = {
  "\xeb\xb7\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb8[] = {
  "\xeb\xb8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebb9[] = {
  "\xeb\xb9\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebba[] = {
  "\xeb\xba\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebbb[] = {
  "\xeb\xbb\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebbc[] = {
  "\xeb\xbc\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebbd[] = {
  "\xeb\xbd\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebbe[] = {
  "\xeb\xbe\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ebbf[] = {
  "\xeb\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec80[] = {
  "\xec\x80\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec81[] = {
  "\xec\x81\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec82[] = {
  "\xec\x82\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec83[] = {
  "\xec\x83\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec84[] = {
  "\xec\x84\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec85[] = {
  "\xec\x85\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec86[] = {
  "\xec\x86\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec87[] = {
  "\xec\x87\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec88[] = {
  "\xec\x88\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec89[] = {
  "\xec\x89\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec8a[] = {
  "\xec\x8a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec8b[] = {
  "\xec\x8b\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec8c[] = {
  "\xec\x8c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec8d[] = {
  "\xec\x8d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec8e[] = {
  "\xec\x8e\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec8f[] = {
  "\xec\x8f\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec90[] = {
  "\xec\x90\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec91[] = {
  "\xec\x91\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec92[] = {
  "\xec\x92\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec93[] = {
  "\xec\x93\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec94[] = {
  "\xec\x94\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec95[] = {
  "\xec\x95\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec96[] = {
  "\xec\x96\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec97[] = {
  "\xec\x97\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec98[] = {
  "\xec\x98\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec99[] = {
  "\xec\x99\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec9a[] = {
  "\xec\x9a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec9b[] = {
  "\xec\x9b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec9c[] = {
  "\xec\x9c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec9d[] = {
  "\xec\x9d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec9e[] = {
  "\xec\x9e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ec9f[] = {
  "\xec\x9f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca0[] = {
  "\xec\xa0\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca1[] = {
  "\xec\xa1\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca2[] = {
  "\xec\xa2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca3[] = {
  "\xec\xa3\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca4[] = {
  "\xec\xa4\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca5[] = {
  "\xec\xa5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca6[] = {
  "\xec\xa6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca7[] = {
  "\xec\xa7\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca8[] = {
  "\xec\xa8\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_eca9[] = {
  "\xec\xa9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecaa[] = {
  "\xec\xaa\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecab[] = {
  "\xec\xab\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecac[] = {
  "\xec\xac\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecad[] = {
  "\xec\xad\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecae[] = {
  "\xec\xae\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecaf[] = {
  "\xec\xaf\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb0[] = {
  "\xec\xb0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb1[] = {
  "\xec\xb1\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb2[] = {
  "\xec\xb2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb3[] = {
  "\xec\xb3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb4[] = {
  "\xec\xb4\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb5[] = {
  "\xec\xb5\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb6[] = {
  "\xec\xb6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb7[] = {
  "\xec\xb7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb8[] = {
  "\xec\xb8\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecb9[] = {
  "\xec\xb9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecba[] = {
  "\xec\xba\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecbb[] = {
  "\xec\xbb\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecbc[] = {
  "\xec\xbc\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecbd[] = {
  "\xec\xbd\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecbe[] = {
  "\xec\xbe\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ecbf[] = {
  "\xec\xbf\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed80[] = {
  "\xed\x80\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed81[] = {
  "\xed\x81\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed82[] = {
  "\xed\x82\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed83[] = {
  "\xed\x83\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed84[] = {
  "\xed\x84\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed85[] = {
  "\xed\x85\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed86[] = {
  "\xed\x86\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed87[] = {
  "\xed\x87\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed88[] = {
  "\xed\x88\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed89[] = {
  "\xed\x89\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed8a[] = {
  "\xed\x8a\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed8b[] = {
  "\xed\x8b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed8c[] = {
  "\xed\x8c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed8d[] = {
  "\xed\x8d\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed8e[] = {
  "\xed\x8e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed8f[] = {
  "\xed\x8f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed90[] = {
  "\xed\x90\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed91[] = {
  "\xed\x91\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed92[] = {
  "\xed\x92\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed93[] = {
  "\xed\x93\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed94[] = {
  "\xed\x94\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed95[] = {
  "\xed\x95\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed96[] = {
  "\xed\x96\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed97[] = {
  "\xed\x97\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb0"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed98[] = {
  "\xed\x98\x8c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed99[] = {
  "\xed\x99\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed9a[] = {
  "\xed\x9a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed9b[] = {
  "\xed\x9b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed9c[] = {
  "\xed\x9c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b3_table_ed9d[] = {
  "\xed\x9d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb8"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b3_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x94";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab0[] = {
  "\xea\xb0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab1[] = {
  "\xea\xb1\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab2[] = {
  "\xea\xb2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab3[] = {
  "\xea\xb3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab4[] = {
  "\xea\xb4\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab5[] = {
  "\xea\xb5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab6[] = {
  "\xea\xb6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab7[] = {
  "\xea\xb7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab8[] = {
  "\xea\xb8\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eab9[] = {
  "\xea\xb9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eaba[] = {
  "\xea\xba\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eabb[] = {
  "\xea\xbb\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eabc[] = {
  "\xea\xbc\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eabd[] = {
  "\xea\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eabe[] = {
  "\xea\xbe\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eabf[] = {
  "\xea\xbf\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb80[] = {
  "\xeb\x80\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb81[] = {
  "\xeb\x81\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb82[] = {
  "\xeb\x82\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb83[] = {
  "\xeb\x83\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb84[] = {
  "\xeb\x84\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb85[] = {
  "\xeb\x85\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb86[] = {
  "\xeb\x86\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb87[] = {
  "\xeb\x87\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb88[] = {
  "\xeb\x88\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb89[] = {
  "\xeb\x89\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb8a[] = {
  "\xeb\x8a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb8b[] = {
  "\xeb\x8b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb8c[] = {
  "\xeb\x8c\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb8d[] = {
  "\xeb\x8d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb8e[] = {
  "\xeb\x8e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb8f[] = {
  "\xeb\x8f\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb90[] = {
  "\xeb\x90\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb91[] = {
  "\xeb\x91\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb92[] = {
  "\xeb\x92\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb93[] = {
  "\xeb\x93\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb94[] = {
  "\xeb\x94\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb95[] = {
  "\xeb\x95\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb96[] = {
  "\xeb\x96\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb97[] = {
  "\xeb\x97\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb98[] = {
  "\xeb\x98\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb99[] = {
  "\xeb\x99\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb9a[] = {
  "\xeb\x9a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb9b[] = {
  "\xeb\x9b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb9c[] = {
  "\xeb\x9c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb9d[] = {
  "\xeb\x9d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb9e[] = {
  "\xeb\x9e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eb9f[] = {
  "\xeb\x9f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba0[] = {
  "\xeb\xa0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba1[] = {
  "\xeb\xa1\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba2[] = {
  "\xeb\xa2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba3[] = {
  "\xeb\xa3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba4[] = {
  "\xeb\xa4\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba5[] = {
  "\xeb\xa5\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba6[] = {
  "\xeb\xa6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba7[] = {
  "\xeb\xa7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba8[] = {
  "\xeb\xa8\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eba9[] = {
  "\xeb\xa9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebaa[] = {
  "\xeb\xaa\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebab[] = {
  "\xeb\xab\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebac[] = {
  "\xeb\xac\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebad[] = {
  "\xeb\xad\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebae[] = {
  "\xeb\xae\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebaf[] = {
  "\xeb\xaf\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb0[] = {
  "\xeb\xb0\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb1[] = {
  "\xeb\xb1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb2[] = {
  "\xeb\xb2\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb3[] = {
  "\xeb\xb3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb4[] = {
  "\xeb\xb4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb5[] = {
  "\xeb\xb5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb6[] = {
  "\xeb\xb6\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb7[] = {
  "\xeb\xb7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb8[] = {
  "\xeb\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebb9[] = {
  "\xeb\xb9\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebba[] = {
  "\xeb\xba\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebbb[] = {
  "\xeb\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebbc[] = {
  "\xeb\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebbd[] = {
  "\xeb\xbd\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebbe[] = {
  "\xeb\xbe\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ebbf[] = {
  "\xeb\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec80[] = {
  "\xec\x80\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec81[] = {
  "\xec\x81\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec82[] = {
  "\xec\x82\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec83[] = {
  "\xec\x83\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec84[] = {
  "\xec\x84\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec85[] = {
  "\xec\x85\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec86[] = {
  "\xec\x86\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec87[] = {
  "\xec\x87\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec88[] = {
  "\xec\x88\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec89[] = {
  "\xec\x89\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec8a[] = {
  "\xec\x8a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec8b[] = {
  "\xec\x8b\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec8c[] = {
  "\xec\x8c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec8d[] = {
  "\xec\x8d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec8e[] = {
  "\xec\x8e\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec8f[] = {
  "\xec\x8f\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec90[] = {
  "\xec\x90\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec91[] = {
  "\xec\x91\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec92[] = {
  "\xec\x92\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec93[] = {
  "\xec\x93\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec94[] = {
  "\xec\x94\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec95[] = {
  "\xec\x95\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec96[] = {
  "\xec\x96\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec97[] = {
  "\xec\x97\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec98[] = {
  "\xec\x98\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec99[] = {
  "\xec\x99\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec9a[] = {
  "\xec\x9a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec9b[] = {
  "\xec\x9b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec9c[] = {
  "\xec\x9c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec9d[] = {
  "\xec\x9d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec9e[] = {
  "\xec\x9e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ec9f[] = {
  "\xec\x9f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca0[] = {
  "\xec\xa0\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca1[] = {
  "\xec\xa1\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca2[] = {
  "\xec\xa2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca3[] = {
  "\xec\xa3\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca4[] = {
  "\xec\xa4\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca5[] = {
  "\xec\xa5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca6[] = {
  "\xec\xa6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca7[] = {
  "\xec\xa7\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca8[] = {
  "\xec\xa8\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_eca9[] = {
  "\xec\xa9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecaa[] = {
  "\xec\xaa\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecab[] = {
  "\xec\xab\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecac[] = {
  "\xec\xac\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecad[] = {
  "\xec\xad\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecae[] = {
  "\xec\xae\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecaf[] = {
  "\xec\xaf\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb0[] = {
  "\xec\xb0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb1[] = {
  "\xec\xb1\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb2[] = {
  "\xec\xb2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb3[] = {
  "\xec\xb3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb4[] = {
  "\xec\xb4\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb5[] = {
  "\xec\xb5\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb6[] = {
  "\xec\xb6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb7[] = {
  "\xec\xb7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb8[] = {
  "\xec\xb8\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecb9[] = {
  "\xec\xb9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecba[] = {
  "\xec\xba\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecbb[] = {
  "\xec\xbb\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecbc[] = {
  "\xec\xbc\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecbd[] = {
  "\xec\xbd\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecbe[] = {
  "\xec\xbe\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ecbf[] = {
  "\xec\xbf\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed80[] = {
  "\xed\x80\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed81[] = {
  "\xed\x81\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed82[] = {
  "\xed\x82\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed83[] = {
  "\xed\x83\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed84[] = {
  "\xed\x84\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed85[] = {
  "\xed\x85\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed86[] = {
  "\xed\x86\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed87[] = {
  "\xed\x87\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed88[] = {
  "\xed\x88\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed89[] = {
  "\xed\x89\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed8a[] = {
  "\xed\x8a\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed8b[] = {
  "\xed\x8b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed8c[] = {
  "\xed\x8c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed8d[] = {
  "\xed\x8d\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed8e[] = {
  "\xed\x8e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed8f[] = {
  "\xed\x8f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed90[] = {
  "\xed\x90\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed91[] = {
  "\xed\x91\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed92[] = {
  "\xed\x92\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed93[] = {
  "\xed\x93\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed94[] = {
  "\xed\x94\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed95[] = {
  "\xed\x95\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed96[] = {
  "\xed\x96\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed97[] = {
  "\xed\x97\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb1"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed98[] = {
  "\xed\x98\x8d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xa9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed99[] = {
  "\xed\x99\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed9a[] = {
  "\xed\x9a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed9b[] = {
  "\xed\x9b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed9c[] = {
  "\xed\x9c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b4_table_ed9d[] = {
  "\xed\x9d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xb9"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b4_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x95";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab0[] = {
  "\xea\xb0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab1[] = {
  "\xea\xb1\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab2[] = {
  "\xea\xb2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab3[] = {
  "\xea\xb3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab4[] = {
  "\xea\xb4\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab5[] = {
  "\xea\xb5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab6[] = {
  "\xea\xb6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab7[] = {
  "\xea\xb7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab8[] = {
  "\xea\xb8\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eab9[] = {
  "\xea\xb9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eaba[] = {
  "\xea\xba\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eabb[] = {
  "\xea\xbb\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eabc[] = {
  "\xea\xbc\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eabd[] = {
  "\xea\xbd\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eabe[] = {
  "\xea\xbe\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eabf[] = {
  "\xea\xbf\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb80[] = {
  "\xeb\x80\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb81[] = {
  "\xeb\x81\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb82[] = {
  "\xeb\x82\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb83[] = {
  "\xeb\x83\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb84[] = {
  "\xeb\x84\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb85[] = {
  "\xeb\x85\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb86[] = {
  "\xeb\x86\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb87[] = {
  "\xeb\x87\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb88[] = {
  "\xeb\x88\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb89[] = {
  "\xeb\x89\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb8a[] = {
  "\xeb\x8a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb8b[] = {
  "\xeb\x8b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb8c[] = {
  "\xeb\x8c\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb8d[] = {
  "\xeb\x8d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb8e[] = {
  "\xeb\x8e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb8f[] = {
  "\xeb\x8f\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb90[] = {
  "\xeb\x90\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb91[] = {
  "\xeb\x91\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb92[] = {
  "\xeb\x92\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb93[] = {
  "\xeb\x93\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb94[] = {
  "\xeb\x94\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb95[] = {
  "\xeb\x95\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb96[] = {
  "\xeb\x96\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb97[] = {
  "\xeb\x97\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb98[] = {
  "\xeb\x98\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb99[] = {
  "\xeb\x99\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb9a[] = {
  "\xeb\x9a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb9b[] = {
  "\xeb\x9b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb9c[] = {
  "\xeb\x9c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb9d[] = {
  "\xeb\x9d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb9e[] = {
  "\xeb\x9e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eb9f[] = {
  "\xeb\x9f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba0[] = {
  "\xeb\xa0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba1[] = {
  "\xeb\xa1\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba2[] = {
  "\xeb\xa2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba3[] = {
  "\xeb\xa3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba4[] = {
  "\xeb\xa4\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba5[] = {
  "\xeb\xa5\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba6[] = {
  "\xeb\xa6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba7[] = {
  "\xeb\xa7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba8[] = {
  "\xeb\xa8\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eba9[] = {
  "\xeb\xa9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebaa[] = {
  "\xeb\xaa\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebab[] = {
  "\xeb\xab\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebac[] = {
  "\xeb\xac\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebad[] = {
  "\xeb\xad\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebae[] = {
  "\xeb\xae\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebaf[] = {
  "\xeb\xaf\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb0[] = {
  "\xeb\xb0\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb1[] = {
  "\xeb\xb1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb2[] = {
  "\xeb\xb2\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb3[] = {
  "\xeb\xb3\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb4[] = {
  "\xeb\xb4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb5[] = {
  "\xeb\xb5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb6[] = {
  "\xeb\xb6\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb7[] = {
  "\xeb\xb7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb8[] = {
  "\xeb\xb8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebb9[] = {
  "\xeb\xb9\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebba[] = {
  "\xeb\xba\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebbb[] = {
  "\xeb\xbb\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebbc[] = {
  "\xeb\xbc\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebbd[] = {
  "\xeb\xbd\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebbe[] = {
  "\xeb\xbe\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ebbf[] = {
  "\xeb\xbf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec80[] = {
  "\xec\x80\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec81[] = {
  "\xec\x81\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec82[] = {
  "\xec\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec83[] = {
  "\xec\x83\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec84[] = {
  "\xec\x84\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec85[] = {
  "\xec\x85\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec86[] = {
  "\xec\x86\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec87[] = {
  "\xec\x87\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec88[] = {
  "\xec\x88\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec89[] = {
  "\xec\x89\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec8a[] = {
  "\xec\x8a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec8b[] = {
  "\xec\x8b\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec8c[] = {
  "\xec\x8c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec8d[] = {
  "\xec\x8d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec8e[] = {
  "\xec\x8e\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec8f[] = {
  "\xec\x8f\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec90[] = {
  "\xec\x90\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec91[] = {
  "\xec\x91\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec92[] = {
  "\xec\x92\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec93[] = {
  "\xec\x93\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec94[] = {
  "\xec\x94\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec95[] = {
  "\xec\x95\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec96[] = {
  "\xec\x96\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec97[] = {
  "\xec\x97\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec98[] = {
  "\xec\x98\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec99[] = {
  "\xec\x99\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec9a[] = {
  "\xec\x9a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec9b[] = {
  "\xec\x9b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec9c[] = {
  "\xec\x9c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec9d[] = {
  "\xec\x9d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec9e[] = {
  "\xec\x9e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ec9f[] = {
  "\xec\x9f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca0[] = {
  "\xec\xa0\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca1[] = {
  "\xec\xa1\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca2[] = {
  "\xec\xa2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca3[] = {
  "\xec\xa3\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca4[] = {
  "\xec\xa4\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca5[] = {
  "\xec\xa5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca6[] = {
  "\xec\xa6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca7[] = {
  "\xec\xa7\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca8[] = {
  "\xec\xa8\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_eca9[] = {
  "\xec\xa9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecaa[] = {
  "\xec\xaa\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecab[] = {
  "\xec\xab\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecac[] = {
  "\xec\xac\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecad[] = {
  "\xec\xad\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecae[] = {
  "\xec\xae\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecaf[] = {
  "\xec\xaf\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb0[] = {
  "\xec\xb0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb1[] = {
  "\xec\xb1\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb2[] = {
  "\xec\xb2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb3[] = {
  "\xec\xb3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb4[] = {
  "\xec\xb4\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb5[] = {
  "\xec\xb5\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb6[] = {
  "\xec\xb6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb7[] = {
  "\xec\xb7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb8[] = {
  "\xec\xb8\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecb9[] = {
  "\xec\xb9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecba[] = {
  "\xec\xba\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecbb[] = {
  "\xec\xbb\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecbc[] = {
  "\xec\xbc\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecbd[] = {
  "\xec\xbd\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecbe[] = {
  "\xec\xbe\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ecbf[] = {
  "\xec\xbf\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed80[] = {
  "\xed\x80\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed81[] = {
  "\xed\x81\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed82[] = {
  "\xed\x82\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed83[] = {
  "\xed\x83\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed84[] = {
  "\xed\x84\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed85[] = {
  "\xed\x85\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed86[] = {
  "\xed\x86\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed87[] = {
  "\xed\x87\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed88[] = {
  "\xed\x88\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed89[] = {
  "\xed\x89\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed8a[] = {
  "\xed\x8a\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed8b[] = {
  "\xed\x8b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed8c[] = {
  "\xed\x8c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed8d[] = {
  "\xed\x8d\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed8e[] = {
  "\xed\x8e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed8f[] = {
  "\xed\x8f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed90[] = {
  "\xed\x90\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed91[] = {
  "\xed\x91\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed92[] = {
  "\xed\x92\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed93[] = {
  "\xed\x93\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed94[] = {
  "\xed\x94\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed95[] = {
  "\xed\x95\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed96[] = {
  "\xed\x96\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed97[] = {
  "\xed\x97\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb2"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed98[] = {
  "\xed\x98\x8e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xaa", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed99[] = {
  "\xed\x99\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed9a[] = {
  "\xed\x9a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed9b[] = {
  "\xed\x9b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed9c[] = {
  "\xed\x9c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b5_table_ed9d[] = {
  "\xed\x9d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xba"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b5_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x96";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab0[] = {
  "\xea\xb0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab1[] = {
  "\xea\xb1\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb1\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab2[] = {
  "\xea\xb2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab3[] = {
  "\xea\xb3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab4[] = {
  "\xea\xb4\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab5[] = {
  "\xea\xb5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab6[] = {
  "\xea\xb6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab7[] = {
  "\xea\xb7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab8[] = {
  "\xea\xb8\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb8\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eab9[] = {
  "\xea\xb9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eaba[] = {
  "\xea\xba\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eabb[] = {
  "\xea\xbb\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eabc[] = {
  "\xea\xbc\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eabd[] = {
  "\xea\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eabe[] = {
  "\xea\xbe\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eabf[] = {
  "\xea\xbf\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbf\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb80[] = {
  "\xeb\x80\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb81[] = {
  "\xeb\x81\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb82[] = {
  "\xeb\x82\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb83[] = {
  "\xeb\x83\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb84[] = {
  "\xeb\x84\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb85[] = {
  "\xeb\x85\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb86[] = {
  "\xeb\x86\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x86\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb87[] = {
  "\xeb\x87\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb88[] = {
  "\xeb\x88\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb89[] = {
  "\xeb\x89\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb8a[] = {
  "\xeb\x8a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb8b[] = {
  "\xeb\x8b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb8c[] = {
  "\xeb\x8c\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb8d[] = {
  "\xeb\x8d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8d\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb8e[] = {
  "\xeb\x8e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb8f[] = {
  "\xeb\x8f\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb90[] = {
  "\xeb\x90\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb91[] = {
  "\xeb\x91\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb92[] = {
  "\xeb\x92\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb93[] = {
  "\xeb\x93\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb94[] = {
  "\xeb\x94\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x94\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb95[] = {
  "\xeb\x95\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb96[] = {
  "\xeb\x96\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb97[] = {
  "\xeb\x97\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb98[] = {
  "\xeb\x98\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb99[] = {
  "\xeb\x99\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb9a[] = {
  "\xeb\x9a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb9b[] = {
  "\xeb\x9b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9b\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb9c[] = {
  "\xeb\x9c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb9d[] = {
  "\xeb\x9d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb9e[] = {
  "\xeb\x9e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eb9f[] = {
  "\xeb\x9f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba0[] = {
  "\xeb\xa0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba1[] = {
  "\xeb\xa1\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba2[] = {
  "\xeb\xa2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa2\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba3[] = {
  "\xeb\xa3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba4[] = {
  "\xeb\xa4\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba5[] = {
  "\xeb\xa5\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba6[] = {
  "\xeb\xa6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba7[] = {
  "\xeb\xa7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba8[] = {
  "\xeb\xa8\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eba9[] = {
  "\xeb\xa9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa9\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebaa[] = {
  "\xeb\xaa\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebab[] = {
  "\xeb\xab\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebac[] = {
  "\xeb\xac\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebad[] = {
  "\xeb\xad\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebae[] = {
  "\xeb\xae\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebaf[] = {
  "\xeb\xaf\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb0[] = {
  "\xeb\xb0\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb0\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb1[] = {
  "\xeb\xb1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb2[] = {
  "\xeb\xb2\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb3[] = {
  "\xeb\xb3\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb4[] = {
  "\xeb\xb4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb5[] = {
  "\xeb\xb5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb6[] = {
  "\xeb\xb6\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb7[] = {
  "\xeb\xb7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb7\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb8[] = {
  "\xeb\xb8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebb9[] = {
  "\xeb\xb9\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebba[] = {
  "\xeb\xba\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebbb[] = {
  "\xeb\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebbc[] = {
  "\xeb\xbc\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebbd[] = {
  "\xeb\xbd\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebbe[] = {
  "\xeb\xbe\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbe\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ebbf[] = {
  "\xeb\xbf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec80[] = {
  "\xec\x80\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec81[] = {
  "\xec\x81\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec82[] = {
  "\xec\x82\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec83[] = {
  "\xec\x83\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec84[] = {
  "\xec\x84\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec85[] = {
  "\xec\x85\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x85\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec86[] = {
  "\xec\x86\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec87[] = {
  "\xec\x87\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec88[] = {
  "\xec\x88\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec89[] = {
  "\xec\x89\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec8a[] = {
  "\xec\x8a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec8b[] = {
  "\xec\x8b\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec8c[] = {
  "\xec\x8c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8c\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec8d[] = {
  "\xec\x8d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec8e[] = {
  "\xec\x8e\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec8f[] = {
  "\xec\x8f\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec90[] = {
  "\xec\x90\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec91[] = {
  "\xec\x91\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec92[] = {
  "\xec\x92\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec93[] = {
  "\xec\x93\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x93\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec94[] = {
  "\xec\x94\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec95[] = {
  "\xec\x95\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec96[] = {
  "\xec\x96\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec97[] = {
  "\xec\x97\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec98[] = {
  "\xec\x98\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec99[] = {
  "\xec\x99\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec9a[] = {
  "\xec\x9a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9a\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec9b[] = {
  "\xec\x9b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec9c[] = {
  "\xec\x9c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec9d[] = {
  "\xec\x9d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec9e[] = {
  "\xec\x9e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ec9f[] = {
  "\xec\x9f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca0[] = {
  "\xec\xa0\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca1[] = {
  "\xec\xa1\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa1\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca2[] = {
  "\xec\xa2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca3[] = {
  "\xec\xa3\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca4[] = {
  "\xec\xa4\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca5[] = {
  "\xec\xa5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca6[] = {
  "\xec\xa6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca7[] = {
  "\xec\xa7\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca8[] = {
  "\xec\xa8\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa8\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_eca9[] = {
  "\xec\xa9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecaa[] = {
  "\xec\xaa\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecab[] = {
  "\xec\xab\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecac[] = {
  "\xec\xac\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecad[] = {
  "\xec\xad\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecae[] = {
  "\xec\xae\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecaf[] = {
  "\xec\xaf\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaf\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb0[] = {
  "\xec\xb0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb1[] = {
  "\xec\xb1\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb2[] = {
  "\xec\xb2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb3[] = {
  "\xec\xb3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb4[] = {
  "\xec\xb4\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb5[] = {
  "\xec\xb5\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb6[] = {
  "\xec\xb6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb6\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb7[] = {
  "\xec\xb7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb8[] = {
  "\xec\xb8\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecb9[] = {
  "\xec\xb9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecba[] = {
  "\xec\xba\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecbb[] = {
  "\xec\xbb\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecbc[] = {
  "\xec\xbc\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecbd[] = {
  "\xec\xbd\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbd\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecbe[] = {
  "\xec\xbe\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ecbf[] = {
  "\xec\xbf\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed80[] = {
  "\xed\x80\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed81[] = {
  "\xed\x81\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed82[] = {
  "\xed\x82\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed83[] = {
  "\xed\x83\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed84[] = {
  "\xed\x84\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x84\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed85[] = {
  "\xed\x85\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed86[] = {
  "\xed\x86\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed87[] = {
  "\xed\x87\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed88[] = {
  "\xed\x88\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed89[] = {
  "\xed\x89\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed8a[] = {
  "\xed\x8a\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed8b[] = {
  "\xed\x8b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8b\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed8c[] = {
  "\xed\x8c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed8d[] = {
  "\xed\x8d\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed8e[] = {
  "\xed\x8e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed8f[] = {
  "\xed\x8f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed90[] = {
  "\xed\x90\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed91[] = {
  "\xed\x91\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed92[] = {
  "\xed\x92\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x92\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed93[] = {
  "\xed\x93\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed94[] = {
  "\xed\x94\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed95[] = {
  "\xed\x95\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed96[] = {
  "\xed\x96\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed97[] = {
  "\xed\x97\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb3"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed98[] = {
  "\xed\x98\x8f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xab", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x87"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed99[] = {
  "\xed\x99\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x99\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed9a[] = {
  "\xed\x9a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed9b[] = {
  "\xed\x9b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed9c[] = {
  "\xed\x9c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x83"
};

static const char *grn_nfkc170_compose_prefix_e186b6_table_ed9d[] = {
  "\xed\x9d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbb"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b6(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b6_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x97";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab0[] = {
  "\xea\xb0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab1[] = {
  "\xea\xb1\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab2[] = {
  "\xea\xb2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab3[] = {
  "\xea\xb3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab4[] = {
  "\xea\xb4\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab5[] = {
  "\xea\xb5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab6[] = {
  "\xea\xb6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab7[] = {
  "\xea\xb7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab8[] = {
  "\xea\xb8\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eab9[] = {
  "\xea\xb9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eaba[] = {
  "\xea\xba\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eabb[] = {
  "\xea\xbb\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eabc[] = {
  "\xea\xbc\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eabd[] = {
  "\xea\xbd\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eabe[] = {
  "\xea\xbe\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eabf[] = {
  "\xea\xbf\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb80[] = {
  "\xeb\x80\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb81[] = {
  "\xeb\x81\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb82[] = {
  "\xeb\x82\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb83[] = {
  "\xeb\x83\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb84[] = {
  "\xeb\x84\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb85[] = {
  "\xeb\x85\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb86[] = {
  "\xeb\x86\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb87[] = {
  "\xeb\x87\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb88[] = {
  "\xeb\x88\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb89[] = {
  "\xeb\x89\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb8a[] = {
  "\xeb\x8a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb8b[] = {
  "\xeb\x8b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb8c[] = {
  "\xeb\x8c\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb8d[] = {
  "\xeb\x8d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb8e[] = {
  "\xeb\x8e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb8f[] = {
  "\xeb\x8f\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb90[] = {
  "\xeb\x90\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb91[] = {
  "\xeb\x91\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb92[] = {
  "\xeb\x92\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb93[] = {
  "\xeb\x93\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb94[] = {
  "\xeb\x94\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb95[] = {
  "\xeb\x95\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb96[] = {
  "\xeb\x96\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb97[] = {
  "\xeb\x97\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb98[] = {
  "\xeb\x98\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb99[] = {
  "\xeb\x99\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb9a[] = {
  "\xeb\x9a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb9b[] = {
  "\xeb\x9b\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb9c[] = {
  "\xeb\x9c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb9d[] = {
  "\xeb\x9d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb9e[] = {
  "\xeb\x9e\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eb9f[] = {
  "\xeb\x9f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba0[] = {
  "\xeb\xa0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba1[] = {
  "\xeb\xa1\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba2[] = {
  "\xeb\xa2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba3[] = {
  "\xeb\xa3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba4[] = {
  "\xeb\xa4\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba5[] = {
  "\xeb\xa5\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba6[] = {
  "\xeb\xa6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba7[] = {
  "\xeb\xa7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba8[] = {
  "\xeb\xa8\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eba9[] = {
  "\xeb\xa9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebaa[] = {
  "\xeb\xaa\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebab[] = {
  "\xeb\xab\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebac[] = {
  "\xeb\xac\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebad[] = {
  "\xeb\xad\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebae[] = {
  "\xeb\xae\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebaf[] = {
  "\xeb\xaf\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb0[] = {
  "\xeb\xb0\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb1[] = {
  "\xeb\xb1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb2[] = {
  "\xeb\xb2\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb3[] = {
  "\xeb\xb3\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb4[] = {
  "\xeb\xb4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb5[] = {
  "\xeb\xb5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb6[] = {
  "\xeb\xb6\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb7[] = {
  "\xeb\xb7\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb8[] = {
  "\xeb\xb8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebb9[] = {
  "\xeb\xb9\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebba[] = {
  "\xeb\xba\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebbb[] = {
  "\xeb\xbb\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebbc[] = {
  "\xeb\xbc\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebbd[] = {
  "\xeb\xbd\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebbe[] = {
  "\xeb\xbe\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ebbf[] = {
  "\xeb\xbf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec80[] = {
  "\xec\x80\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec81[] = {
  "\xec\x81\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec82[] = {
  "\xec\x82\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec83[] = {
  "\xec\x83\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec84[] = {
  "\xec\x84\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec85[] = {
  "\xec\x85\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec86[] = {
  "\xec\x86\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec87[] = {
  "\xec\x87\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec88[] = {
  "\xec\x88\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec89[] = {
  "\xec\x89\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec8a[] = {
  "\xec\x8a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec8b[] = {
  "\xec\x8b\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec8c[] = {
  "\xec\x8c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec8d[] = {
  "\xec\x8d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec8e[] = {
  "\xec\x8e\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec8f[] = {
  "\xec\x8f\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec90[] = {
  "\xec\x90\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec91[] = {
  "\xec\x91\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec92[] = {
  "\xec\x92\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec93[] = {
  "\xec\x93\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec94[] = {
  "\xec\x94\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec95[] = {
  "\xec\x95\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec96[] = {
  "\xec\x96\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec97[] = {
  "\xec\x97\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec98[] = {
  "\xec\x98\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec99[] = {
  "\xec\x99\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec9a[] = {
  "\xec\x9a\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec9b[] = {
  "\xec\x9b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec9c[] = {
  "\xec\x9c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec9d[] = {
  "\xec\x9d\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec9e[] = {
  "\xec\x9e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ec9f[] = {
  "\xec\x9f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca0[] = {
  "\xec\xa0\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca1[] = {
  "\xec\xa1\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca2[] = {
  "\xec\xa2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca3[] = {
  "\xec\xa3\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca4[] = {
  "\xec\xa4\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca5[] = {
  "\xec\xa5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca6[] = {
  "\xec\xa6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca7[] = {
  "\xec\xa7\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca8[] = {
  "\xec\xa8\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_eca9[] = {
  "\xec\xa9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecaa[] = {
  "\xec\xaa\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecab[] = {
  "\xec\xab\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecac[] = {
  "\xec\xac\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecad[] = {
  "\xec\xad\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecae[] = {
  "\xec\xae\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecaf[] = {
  "\xec\xaf\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb0[] = {
  "\xec\xb0\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb1[] = {
  "\xec\xb1\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb2[] = {
  "\xec\xb2\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb3[] = {
  "\xec\xb3\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb4[] = {
  "\xec\xb4\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb5[] = {
  "\xec\xb5\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb6[] = {
  "\xec\xb6\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb7[] = {
  "\xec\xb7\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb8[] = {
  "\xec\xb8\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecb9[] = {
  "\xec\xb9\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecba[] = {
  "\xec\xba\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecbb[] = {
  "\xec\xbb\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecbc[] = {
  "\xec\xbc\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecbd[] = {
  "\xec\xbd\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecbe[] = {
  "\xec\xbe\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ecbf[] = {
  "\xec\xbf\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed80[] = {
  "\xed\x80\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed81[] = {
  "\xed\x81\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed82[] = {
  "\xed\x82\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed83[] = {
  "\xed\x83\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed84[] = {
  "\xed\x84\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed85[] = {
  "\xed\x85\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed86[] = {
  "\xed\x86\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed87[] = {
  "\xed\x87\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed88[] = {
  "\xed\x88\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed89[] = {
  "\xed\x89\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed8a[] = {
  "\xed\x8a\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed8b[] = {
  "\xed\x8b\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed8c[] = {
  "\xed\x8c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed8d[] = {
  "\xed\x8d\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed8e[] = {
  "\xed\x8e\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed8f[] = {
  "\xed\x8f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed90[] = {
  "\xed\x90\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed91[] = {
  "\xed\x91\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed92[] = {
  "\xed\x92\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed93[] = {
  "\xed\x93\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed94[] = {
  "\xed\x94\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed95[] = {
  "\xed\x95\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed96[] = {
  "\xed\x96\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed97[] = {
  "\xed\x97\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb4"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed98[] = {
  "\xed\x98\x90", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xac", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x88"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed99[] = {
  "\xed\x99\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x80"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed9a[] = {
  "\xed\x9a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed9b[] = {
  "\xed\x9b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed9c[] = {
  "\xed\x9c\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x84"
};

static const char *grn_nfkc170_compose_prefix_e186b7_table_ed9d[] = {
  "\xed\x9d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbc"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b7(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b7_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x98";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab0[] = {
  "\xea\xb0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab1[] = {
  "\xea\xb1\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab2[] = {
  "\xea\xb2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab3[] = {
  "\xea\xb3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab4[] = {
  "\xea\xb4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab5[] = {
  "\xea\xb5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab6[] = {
  "\xea\xb6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab7[] = {
  "\xea\xb7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab8[] = {
  "\xea\xb8\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eab9[] = {
  "\xea\xb9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eaba[] = {
  "\xea\xba\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eabb[] = {
  "\xea\xbb\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eabc[] = {
  "\xea\xbc\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eabd[] = {
  "\xea\xbd\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eabe[] = {
  "\xea\xbe\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eabf[] = {
  "\xea\xbf\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb80[] = {
  "\xeb\x80\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb81[] = {
  "\xeb\x81\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb82[] = {
  "\xeb\x82\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb83[] = {
  "\xeb\x83\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb84[] = {
  "\xeb\x84\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb85[] = {
  "\xeb\x85\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb86[] = {
  "\xeb\x86\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb87[] = {
  "\xeb\x87\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb88[] = {
  "\xeb\x88\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb89[] = {
  "\xeb\x89\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb8a[] = {
  "\xeb\x8a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb8b[] = {
  "\xeb\x8b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb8c[] = {
  "\xeb\x8c\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb8d[] = {
  "\xeb\x8d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb8e[] = {
  "\xeb\x8e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb8f[] = {
  "\xeb\x8f\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb90[] = {
  "\xeb\x90\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb91[] = {
  "\xeb\x91\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb92[] = {
  "\xeb\x92\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb93[] = {
  "\xeb\x93\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb94[] = {
  "\xeb\x94\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb95[] = {
  "\xeb\x95\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb96[] = {
  "\xeb\x96\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb97[] = {
  "\xeb\x97\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb98[] = {
  "\xeb\x98\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb99[] = {
  "\xeb\x99\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb9a[] = {
  "\xeb\x9a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb9b[] = {
  "\xeb\x9b\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb9c[] = {
  "\xeb\x9c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb9d[] = {
  "\xeb\x9d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb9e[] = {
  "\xeb\x9e\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eb9f[] = {
  "\xeb\x9f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba0[] = {
  "\xeb\xa0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba1[] = {
  "\xeb\xa1\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba2[] = {
  "\xeb\xa2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba3[] = {
  "\xeb\xa3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba4[] = {
  "\xeb\xa4\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba5[] = {
  "\xeb\xa5\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba6[] = {
  "\xeb\xa6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba7[] = {
  "\xeb\xa7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba8[] = {
  "\xeb\xa8\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eba9[] = {
  "\xeb\xa9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebaa[] = {
  "\xeb\xaa\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebab[] = {
  "\xeb\xab\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebac[] = {
  "\xeb\xac\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebad[] = {
  "\xeb\xad\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebae[] = {
  "\xeb\xae\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebaf[] = {
  "\xeb\xaf\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb0[] = {
  "\xeb\xb0\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb1[] = {
  "\xeb\xb1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb2[] = {
  "\xeb\xb2\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb3[] = {
  "\xeb\xb3\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb4[] = {
  "\xeb\xb4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb5[] = {
  "\xeb\xb5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb6[] = {
  "\xeb\xb6\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb7[] = {
  "\xeb\xb7\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb8[] = {
  "\xeb\xb8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebb9[] = {
  "\xeb\xb9\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebba[] = {
  "\xeb\xba\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebbb[] = {
  "\xeb\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebbc[] = {
  "\xeb\xbc\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebbd[] = {
  "\xeb\xbd\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebbe[] = {
  "\xeb\xbe\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ebbf[] = {
  "\xeb\xbf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec80[] = {
  "\xec\x80\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec81[] = {
  "\xec\x81\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec82[] = {
  "\xec\x82\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec83[] = {
  "\xec\x83\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec84[] = {
  "\xec\x84\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec85[] = {
  "\xec\x85\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec86[] = {
  "\xec\x86\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec87[] = {
  "\xec\x87\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec88[] = {
  "\xec\x88\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec89[] = {
  "\xec\x89\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec8a[] = {
  "\xec\x8a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec8b[] = {
  "\xec\x8b\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec8c[] = {
  "\xec\x8c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec8d[] = {
  "\xec\x8d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec8e[] = {
  "\xec\x8e\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec8f[] = {
  "\xec\x8f\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec90[] = {
  "\xec\x90\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec91[] = {
  "\xec\x91\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec92[] = {
  "\xec\x92\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec93[] = {
  "\xec\x93\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec94[] = {
  "\xec\x94\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec95[] = {
  "\xec\x95\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec96[] = {
  "\xec\x96\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec97[] = {
  "\xec\x97\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec98[] = {
  "\xec\x98\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec99[] = {
  "\xec\x99\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec9a[] = {
  "\xec\x9a\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec9b[] = {
  "\xec\x9b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec9c[] = {
  "\xec\x9c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec9d[] = {
  "\xec\x9d\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec9e[] = {
  "\xec\x9e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ec9f[] = {
  "\xec\x9f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca0[] = {
  "\xec\xa0\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca1[] = {
  "\xec\xa1\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca2[] = {
  "\xec\xa2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca3[] = {
  "\xec\xa3\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca4[] = {
  "\xec\xa4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca5[] = {
  "\xec\xa5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca6[] = {
  "\xec\xa6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca7[] = {
  "\xec\xa7\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca8[] = {
  "\xec\xa8\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_eca9[] = {
  "\xec\xa9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecaa[] = {
  "\xec\xaa\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecab[] = {
  "\xec\xab\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecac[] = {
  "\xec\xac\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecad[] = {
  "\xec\xad\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecae[] = {
  "\xec\xae\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecaf[] = {
  "\xec\xaf\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb0[] = {
  "\xec\xb0\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb1[] = {
  "\xec\xb1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb2[] = {
  "\xec\xb2\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb3[] = {
  "\xec\xb3\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb4[] = {
  "\xec\xb4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb5[] = {
  "\xec\xb5\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb6[] = {
  "\xec\xb6\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb7[] = {
  "\xec\xb7\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb8[] = {
  "\xec\xb8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecb9[] = {
  "\xec\xb9\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecba[] = {
  "\xec\xba\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecbb[] = {
  "\xec\xbb\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecbc[] = {
  "\xec\xbc\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecbd[] = {
  "\xec\xbd\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecbe[] = {
  "\xec\xbe\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ecbf[] = {
  "\xec\xbf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed80[] = {
  "\xed\x80\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed81[] = {
  "\xed\x81\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed82[] = {
  "\xed\x82\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed83[] = {
  "\xed\x83\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed84[] = {
  "\xed\x84\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed85[] = {
  "\xed\x85\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed86[] = {
  "\xed\x86\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed87[] = {
  "\xed\x87\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed88[] = {
  "\xed\x88\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed89[] = {
  "\xed\x89\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed8a[] = {
  "\xed\x8a\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed8b[] = {
  "\xed\x8b\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed8c[] = {
  "\xed\x8c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed8d[] = {
  "\xed\x8d\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed8e[] = {
  "\xed\x8e\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed8f[] = {
  "\xed\x8f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed90[] = {
  "\xed\x90\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed91[] = {
  "\xed\x91\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed92[] = {
  "\xed\x92\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed93[] = {
  "\xed\x93\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed94[] = {
  "\xed\x94\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed95[] = {
  "\xed\x95\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed96[] = {
  "\xed\x96\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed97[] = {
  "\xed\x97\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb5"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed98[] = {
  "\xed\x98\x91", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xad", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x89"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed99[] = {
  "\xed\x99\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x81"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed9a[] = {
  "\xed\x9a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed9b[] = {
  "\xed\x9b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed9c[] = {
  "\xed\x9c\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x85"
};

static const char *grn_nfkc170_compose_prefix_e186b8_table_ed9d[] = {
  "\xed\x9d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbd"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b8_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x99";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab0[] = {
  "\xea\xb0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab1[] = {
  "\xea\xb1\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab2[] = {
  "\xea\xb2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab3[] = {
  "\xea\xb3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab4[] = {
  "\xea\xb4\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab5[] = {
  "\xea\xb5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab6[] = {
  "\xea\xb6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab7[] = {
  "\xea\xb7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab8[] = {
  "\xea\xb8\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eab9[] = {
  "\xea\xb9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eaba[] = {
  "\xea\xba\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eabb[] = {
  "\xea\xbb\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eabc[] = {
  "\xea\xbc\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eabd[] = {
  "\xea\xbd\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eabe[] = {
  "\xea\xbe\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eabf[] = {
  "\xea\xbf\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb80[] = {
  "\xeb\x80\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb81[] = {
  "\xeb\x81\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb82[] = {
  "\xeb\x82\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb83[] = {
  "\xeb\x83\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb84[] = {
  "\xeb\x84\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb85[] = {
  "\xeb\x85\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb86[] = {
  "\xeb\x86\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb87[] = {
  "\xeb\x87\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb88[] = {
  "\xeb\x88\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb89[] = {
  "\xeb\x89\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb8a[] = {
  "\xeb\x8a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb8b[] = {
  "\xeb\x8b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb8c[] = {
  "\xeb\x8c\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb8d[] = {
  "\xeb\x8d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb8e[] = {
  "\xeb\x8e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb8f[] = {
  "\xeb\x8f\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb90[] = {
  "\xeb\x90\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb91[] = {
  "\xeb\x91\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb92[] = {
  "\xeb\x92\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb93[] = {
  "\xeb\x93\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb94[] = {
  "\xeb\x94\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb95[] = {
  "\xeb\x95\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb96[] = {
  "\xeb\x96\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb97[] = {
  "\xeb\x97\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb98[] = {
  "\xeb\x98\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb99[] = {
  "\xeb\x99\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb9a[] = {
  "\xeb\x9a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb9b[] = {
  "\xeb\x9b\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb9c[] = {
  "\xeb\x9c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb9d[] = {
  "\xeb\x9d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb9e[] = {
  "\xeb\x9e\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eb9f[] = {
  "\xeb\x9f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba0[] = {
  "\xeb\xa0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba1[] = {
  "\xeb\xa1\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba2[] = {
  "\xeb\xa2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba3[] = {
  "\xeb\xa3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba4[] = {
  "\xeb\xa4\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba5[] = {
  "\xeb\xa5\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba6[] = {
  "\xeb\xa6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba7[] = {
  "\xeb\xa7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba8[] = {
  "\xeb\xa8\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eba9[] = {
  "\xeb\xa9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebaa[] = {
  "\xeb\xaa\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebab[] = {
  "\xeb\xab\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebac[] = {
  "\xeb\xac\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebad[] = {
  "\xeb\xad\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebae[] = {
  "\xeb\xae\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebaf[] = {
  "\xeb\xaf\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb0[] = {
  "\xeb\xb0\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb1[] = {
  "\xeb\xb1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb2[] = {
  "\xeb\xb2\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb3[] = {
  "\xeb\xb3\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb4[] = {
  "\xeb\xb4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb5[] = {
  "\xeb\xb5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb6[] = {
  "\xeb\xb6\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb7[] = {
  "\xeb\xb7\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb8[] = {
  "\xeb\xb8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebb9[] = {
  "\xeb\xb9\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebba[] = {
  "\xeb\xba\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebbb[] = {
  "\xeb\xbb\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebbc[] = {
  "\xeb\xbc\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebbd[] = {
  "\xeb\xbd\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebbe[] = {
  "\xeb\xbe\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ebbf[] = {
  "\xeb\xbf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec80[] = {
  "\xec\x80\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec81[] = {
  "\xec\x81\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec82[] = {
  "\xec\x82\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec83[] = {
  "\xec\x83\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec84[] = {
  "\xec\x84\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec85[] = {
  "\xec\x85\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec86[] = {
  "\xec\x86\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec87[] = {
  "\xec\x87\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec88[] = {
  "\xec\x88\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec89[] = {
  "\xec\x89\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec8a[] = {
  "\xec\x8a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec8b[] = {
  "\xec\x8b\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec8c[] = {
  "\xec\x8c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec8d[] = {
  "\xec\x8d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec8e[] = {
  "\xec\x8e\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec8f[] = {
  "\xec\x8f\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec90[] = {
  "\xec\x90\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec91[] = {
  "\xec\x91\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec92[] = {
  "\xec\x92\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec93[] = {
  "\xec\x93\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec94[] = {
  "\xec\x94\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec95[] = {
  "\xec\x95\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec96[] = {
  "\xec\x96\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec97[] = {
  "\xec\x97\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec98[] = {
  "\xec\x98\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec99[] = {
  "\xec\x99\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec9a[] = {
  "\xec\x9a\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec9b[] = {
  "\xec\x9b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec9c[] = {
  "\xec\x9c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec9d[] = {
  "\xec\x9d\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec9e[] = {
  "\xec\x9e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ec9f[] = {
  "\xec\x9f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca0[] = {
  "\xec\xa0\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca1[] = {
  "\xec\xa1\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca2[] = {
  "\xec\xa2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca3[] = {
  "\xec\xa3\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca4[] = {
  "\xec\xa4\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca5[] = {
  "\xec\xa5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca6[] = {
  "\xec\xa6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca7[] = {
  "\xec\xa7\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca8[] = {
  "\xec\xa8\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_eca9[] = {
  "\xec\xa9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecaa[] = {
  "\xec\xaa\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecab[] = {
  "\xec\xab\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecac[] = {
  "\xec\xac\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecad[] = {
  "\xec\xad\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecae[] = {
  "\xec\xae\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecaf[] = {
  "\xec\xaf\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb0[] = {
  "\xec\xb0\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb1[] = {
  "\xec\xb1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb2[] = {
  "\xec\xb2\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb3[] = {
  "\xec\xb3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb4[] = {
  "\xec\xb4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb5[] = {
  "\xec\xb5\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb6[] = {
  "\xec\xb6\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb7[] = {
  "\xec\xb7\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb8[] = {
  "\xec\xb8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecb9[] = {
  "\xec\xb9\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecba[] = {
  "\xec\xba\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecbb[] = {
  "\xec\xbb\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecbc[] = {
  "\xec\xbc\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecbd[] = {
  "\xec\xbd\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecbe[] = {
  "\xec\xbe\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ecbf[] = {
  "\xec\xbf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed80[] = {
  "\xed\x80\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed81[] = {
  "\xed\x81\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed82[] = {
  "\xed\x82\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed83[] = {
  "\xed\x83\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed84[] = {
  "\xed\x84\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed85[] = {
  "\xed\x85\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed86[] = {
  "\xed\x86\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed87[] = {
  "\xed\x87\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed88[] = {
  "\xed\x88\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed89[] = {
  "\xed\x89\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed8a[] = {
  "\xed\x8a\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed8b[] = {
  "\xed\x8b\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed8c[] = {
  "\xed\x8c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed8d[] = {
  "\xed\x8d\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed8e[] = {
  "\xed\x8e\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed8f[] = {
  "\xed\x8f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed90[] = {
  "\xed\x90\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed91[] = {
  "\xed\x91\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed92[] = {
  "\xed\x92\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed93[] = {
  "\xed\x93\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed94[] = {
  "\xed\x94\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed95[] = {
  "\xed\x95\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed96[] = {
  "\xed\x96\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed97[] = {
  "\xed\x97\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb6"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed98[] = {
  "\xed\x98\x92", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xae", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed99[] = {
  "\xed\x99\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x82"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed9a[] = {
  "\xed\x9a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xba"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed9b[] = {
  "\xed\x9b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed9c[] = {
  "\xed\x9c\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x86"
};

static const char *grn_nfkc170_compose_prefix_e186b9_table_ed9d[] = {
  "\xed\x9d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbe"
};

static inline const char *
grn_nfkc170_compose_prefix_e186b9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186b9_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9a";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab0[] = {
  "\xea\xb0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab1[] = {
  "\xea\xb1\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab2[] = {
  "\xea\xb2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab3[] = {
  "\xea\xb3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab4[] = {
  "\xea\xb4\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab5[] = {
  "\xea\xb5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab6[] = {
  "\xea\xb6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab7[] = {
  "\xea\xb7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab8[] = {
  "\xea\xb8\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eab9[] = {
  "\xea\xb9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eaba[] = {
  "\xea\xba\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eabb[] = {
  "\xea\xbb\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eabc[] = {
  "\xea\xbc\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eabd[] = {
  "\xea\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eabe[] = {
  "\xea\xbe\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eabf[] = {
  "\xea\xbf\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb80[] = {
  "\xeb\x80\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb81[] = {
  "\xeb\x81\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb82[] = {
  "\xeb\x82\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb83[] = {
  "\xeb\x83\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb84[] = {
  "\xeb\x84\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb85[] = {
  "\xeb\x85\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb86[] = {
  "\xeb\x86\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb87[] = {
  "\xeb\x87\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb88[] = {
  "\xeb\x88\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb89[] = {
  "\xeb\x89\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb8a[] = {
  "\xeb\x8a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb8b[] = {
  "\xeb\x8b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb8c[] = {
  "\xeb\x8c\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb8d[] = {
  "\xeb\x8d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb8e[] = {
  "\xeb\x8e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb8f[] = {
  "\xeb\x8f\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb90[] = {
  "\xeb\x90\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb91[] = {
  "\xeb\x91\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb92[] = {
  "\xeb\x92\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb93[] = {
  "\xeb\x93\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb94[] = {
  "\xeb\x94\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb95[] = {
  "\xeb\x95\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb96[] = {
  "\xeb\x96\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb97[] = {
  "\xeb\x97\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb98[] = {
  "\xeb\x98\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb99[] = {
  "\xeb\x99\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb9a[] = {
  "\xeb\x9a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb9b[] = {
  "\xeb\x9b\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb9c[] = {
  "\xeb\x9c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb9d[] = {
  "\xeb\x9d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb9e[] = {
  "\xeb\x9e\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eb9f[] = {
  "\xeb\x9f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba0[] = {
  "\xeb\xa0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba1[] = {
  "\xeb\xa1\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba2[] = {
  "\xeb\xa2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba3[] = {
  "\xeb\xa3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba4[] = {
  "\xeb\xa4\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba5[] = {
  "\xeb\xa5\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba6[] = {
  "\xeb\xa6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba7[] = {
  "\xeb\xa7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba8[] = {
  "\xeb\xa8\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eba9[] = {
  "\xeb\xa9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebaa[] = {
  "\xeb\xaa\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebab[] = {
  "\xeb\xab\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebac[] = {
  "\xeb\xac\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebad[] = {
  "\xeb\xad\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebae[] = {
  "\xeb\xae\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebaf[] = {
  "\xeb\xaf\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb0[] = {
  "\xeb\xb0\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb1[] = {
  "\xeb\xb1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb2[] = {
  "\xeb\xb2\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb3[] = {
  "\xeb\xb3\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb4[] = {
  "\xeb\xb4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb5[] = {
  "\xeb\xb5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb6[] = {
  "\xeb\xb6\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb7[] = {
  "\xeb\xb7\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb8[] = {
  "\xeb\xb8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebb9[] = {
  "\xeb\xb9\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebba[] = {
  "\xeb\xba\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebbb[] = {
  "\xeb\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebbc[] = {
  "\xeb\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebbd[] = {
  "\xeb\xbd\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebbe[] = {
  "\xeb\xbe\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ebbf[] = {
  "\xeb\xbf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec80[] = {
  "\xec\x80\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec81[] = {
  "\xec\x81\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec82[] = {
  "\xec\x82\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec83[] = {
  "\xec\x83\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec84[] = {
  "\xec\x84\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec85[] = {
  "\xec\x85\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec86[] = {
  "\xec\x86\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec87[] = {
  "\xec\x87\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec88[] = {
  "\xec\x88\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec89[] = {
  "\xec\x89\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec8a[] = {
  "\xec\x8a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec8b[] = {
  "\xec\x8b\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec8c[] = {
  "\xec\x8c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec8d[] = {
  "\xec\x8d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec8e[] = {
  "\xec\x8e\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec8f[] = {
  "\xec\x8f\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec90[] = {
  "\xec\x90\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec91[] = {
  "\xec\x91\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec92[] = {
  "\xec\x92\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec93[] = {
  "\xec\x93\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec94[] = {
  "\xec\x94\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec95[] = {
  "\xec\x95\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec96[] = {
  "\xec\x96\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec97[] = {
  "\xec\x97\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec98[] = {
  "\xec\x98\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec99[] = {
  "\xec\x99\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec9a[] = {
  "\xec\x9a\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec9b[] = {
  "\xec\x9b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec9c[] = {
  "\xec\x9c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec9d[] = {
  "\xec\x9d\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec9e[] = {
  "\xec\x9e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ec9f[] = {
  "\xec\x9f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca0[] = {
  "\xec\xa0\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca1[] = {
  "\xec\xa1\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca2[] = {
  "\xec\xa2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca3[] = {
  "\xec\xa3\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca4[] = {
  "\xec\xa4\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca5[] = {
  "\xec\xa5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca6[] = {
  "\xec\xa6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca7[] = {
  "\xec\xa7\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca8[] = {
  "\xec\xa8\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_eca9[] = {
  "\xec\xa9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecaa[] = {
  "\xec\xaa\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecab[] = {
  "\xec\xab\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecac[] = {
  "\xec\xac\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecad[] = {
  "\xec\xad\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecae[] = {
  "\xec\xae\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecaf[] = {
  "\xec\xaf\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb0[] = {
  "\xec\xb0\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb1[] = {
  "\xec\xb1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb2[] = {
  "\xec\xb2\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb3[] = {
  "\xec\xb3\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb4[] = {
  "\xec\xb4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb5[] = {
  "\xec\xb5\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb6[] = {
  "\xec\xb6\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb7[] = {
  "\xec\xb7\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb8[] = {
  "\xec\xb8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecb9[] = {
  "\xec\xb9\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecba[] = {
  "\xec\xba\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecbb[] = {
  "\xec\xbb\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecbc[] = {
  "\xec\xbc\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecbd[] = {
  "\xec\xbd\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecbe[] = {
  "\xec\xbe\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ecbf[] = {
  "\xec\xbf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed80[] = {
  "\xed\x80\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed81[] = {
  "\xed\x81\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed82[] = {
  "\xed\x82\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed83[] = {
  "\xed\x83\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed84[] = {
  "\xed\x84\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed85[] = {
  "\xed\x85\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed86[] = {
  "\xed\x86\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed87[] = {
  "\xed\x87\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed88[] = {
  "\xed\x88\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed89[] = {
  "\xed\x89\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed8a[] = {
  "\xed\x8a\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed8b[] = {
  "\xed\x8b\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed8c[] = {
  "\xed\x8c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed8d[] = {
  "\xed\x8d\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed8e[] = {
  "\xed\x8e\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed8f[] = {
  "\xed\x8f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed90[] = {
  "\xed\x90\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed91[] = {
  "\xed\x91\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed92[] = {
  "\xed\x92\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed93[] = {
  "\xed\x93\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed94[] = {
  "\xed\x94\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed95[] = {
  "\xed\x95\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed96[] = {
  "\xed\x96\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed97[] = {
  "\xed\x97\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb7"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed98[] = {
  "\xed\x98\x93", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xaf", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed99[] = {
  "\xed\x99\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x83"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed9a[] = {
  "\xed\x9a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed9b[] = {
  "\xed\x9b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed9c[] = {
  "\xed\x9c\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x87"
};

static const char *grn_nfkc170_compose_prefix_e186ba_table_ed9d[] = {
  "\xed\x9d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\xbf"
};

static inline const char *
grn_nfkc170_compose_prefix_e186ba(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186ba_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9b";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab0[] = {
  "\xea\xb0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab1[] = {
  "\xea\xb1\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab2[] = {
  "\xea\xb2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab3[] = {
  "\xea\xb3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab4[] = {
  "\xea\xb4\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab5[] = {
  "\xea\xb5\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab6[] = {
  "\xea\xb6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab7[] = {
  "\xea\xb7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab8[] = {
  "\xea\xb8\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eab9[] = {
  "\xea\xb9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eaba[] = {
  "\xea\xba\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eabb[] = {
  "\xea\xbb\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eabc[] = {
  "\xea\xbc\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eabd[] = {
  "\xea\xbd\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eabe[] = {
  "\xea\xbe\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eabf[] = {
  "\xea\xbf\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb80[] = {
  "\xeb\x80\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb81[] = {
  "\xeb\x81\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb82[] = {
  "\xeb\x82\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb83[] = {
  "\xeb\x83\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb84[] = {
  "\xeb\x84\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb85[] = {
  "\xeb\x85\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb86[] = {
  "\xeb\x86\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb87[] = {
  "\xeb\x87\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb88[] = {
  "\xeb\x88\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb89[] = {
  "\xeb\x89\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb8a[] = {
  "\xeb\x8a\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb8b[] = {
  "\xeb\x8b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb8c[] = {
  "\xeb\x8c\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb8d[] = {
  "\xeb\x8d\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb8e[] = {
  "\xeb\x8e\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb8f[] = {
  "\xeb\x8f\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb90[] = {
  "\xeb\x90\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb91[] = {
  "\xeb\x91\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb92[] = {
  "\xeb\x92\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb93[] = {
  "\xeb\x93\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb94[] = {
  "\xeb\x94\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb95[] = {
  "\xeb\x95\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb96[] = {
  "\xeb\x96\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb97[] = {
  "\xeb\x97\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb98[] = {
  "\xeb\x98\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb99[] = {
  "\xeb\x99\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb9a[] = {
  "\xeb\x9a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb9b[] = {
  "\xeb\x9b\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb9c[] = {
  "\xeb\x9c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb9d[] = {
  "\xeb\x9d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb9e[] = {
  "\xeb\x9e\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eb9f[] = {
  "\xeb\x9f\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba0[] = {
  "\xeb\xa0\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba1[] = {
  "\xeb\xa1\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba2[] = {
  "\xeb\xa2\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba3[] = {
  "\xeb\xa3\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba4[] = {
  "\xeb\xa4\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba5[] = {
  "\xeb\xa5\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba6[] = {
  "\xeb\xa6\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba7[] = {
  "\xeb\xa7\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba8[] = {
  "\xeb\xa8\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eba9[] = {
  "\xeb\xa9\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebaa[] = {
  "\xeb\xaa\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebab[] = {
  "\xeb\xab\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebac[] = {
  "\xeb\xac\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebad[] = {
  "\xeb\xad\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebae[] = {
  "\xeb\xae\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebaf[] = {
  "\xeb\xaf\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb0[] = {
  "\xeb\xb0\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb1[] = {
  "\xeb\xb1\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb2[] = {
  "\xeb\xb2\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb3[] = {
  "\xeb\xb3\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb4[] = {
  "\xeb\xb4\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb5[] = {
  "\xeb\xb5\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb6[] = {
  "\xeb\xb6\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb7[] = {
  "\xeb\xb7\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb8[] = {
  "\xeb\xb8\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebb9[] = {
  "\xeb\xb9\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebba[] = {
  "\xeb\xba\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebbb[] = {
  "\xeb\xbb\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebbc[] = {
  "\xeb\xbc\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebbd[] = {
  "\xeb\xbd\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebbe[] = {
  "\xeb\xbe\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ebbf[] = {
  "\xeb\xbf\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec80[] = {
  "\xec\x80\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec81[] = {
  "\xec\x81\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec82[] = {
  "\xec\x82\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec83[] = {
  "\xec\x83\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec84[] = {
  "\xec\x84\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec85[] = {
  "\xec\x85\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec86[] = {
  "\xec\x86\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec87[] = {
  "\xec\x87\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec88[] = {
  "\xec\x88\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec89[] = {
  "\xec\x89\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec8a[] = {
  "\xec\x8a\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec8b[] = {
  "\xec\x8b\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec8c[] = {
  "\xec\x8c\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec8d[] = {
  "\xec\x8d\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec8e[] = {
  "\xec\x8e\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec8f[] = {
  "\xec\x8f\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec90[] = {
  "\xec\x90\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec91[] = {
  "\xec\x91\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec92[] = {
  "\xec\x92\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec93[] = {
  "\xec\x93\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec94[] = {
  "\xec\x94\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec95[] = {
  "\xec\x95\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec96[] = {
  "\xec\x96\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec97[] = {
  "\xec\x97\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec98[] = {
  "\xec\x98\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec99[] = {
  "\xec\x99\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec9a[] = {
  "\xec\x9a\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec9b[] = {
  "\xec\x9b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec9c[] = {
  "\xec\x9c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec9d[] = {
  "\xec\x9d\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec9e[] = {
  "\xec\x9e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ec9f[] = {
  "\xec\x9f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca0[] = {
  "\xec\xa0\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca1[] = {
  "\xec\xa1\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca2[] = {
  "\xec\xa2\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca3[] = {
  "\xec\xa3\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca4[] = {
  "\xec\xa4\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca5[] = {
  "\xec\xa5\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca6[] = {
  "\xec\xa6\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca7[] = {
  "\xec\xa7\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca8[] = {
  "\xec\xa8\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_eca9[] = {
  "\xec\xa9\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecaa[] = {
  "\xec\xaa\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecab[] = {
  "\xec\xab\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecac[] = {
  "\xec\xac\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecad[] = {
  "\xec\xad\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecae[] = {
  "\xec\xae\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecaf[] = {
  "\xec\xaf\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb0[] = {
  "\xec\xb0\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb1[] = {
  "\xec\xb1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb2[] = {
  "\xec\xb2\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb3[] = {
  "\xec\xb3\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb4[] = {
  "\xec\xb4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb5[] = {
  "\xec\xb5\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb6[] = {
  "\xec\xb6\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb7[] = {
  "\xec\xb7\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb8[] = {
  "\xec\xb8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecb9[] = {
  "\xec\xb9\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecba[] = {
  "\xec\xba\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecbb[] = {
  "\xec\xbb\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecbc[] = {
  "\xec\xbc\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecbd[] = {
  "\xec\xbd\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecbe[] = {
  "\xec\xbe\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ecbf[] = {
  "\xec\xbf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed80[] = {
  "\xed\x80\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed81[] = {
  "\xed\x81\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed82[] = {
  "\xed\x82\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed83[] = {
  "\xed\x83\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed84[] = {
  "\xed\x84\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed85[] = {
  "\xed\x85\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed86[] = {
  "\xed\x86\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed87[] = {
  "\xed\x87\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed88[] = {
  "\xed\x88\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed89[] = {
  "\xed\x89\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed8a[] = {
  "\xed\x8a\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed8b[] = {
  "\xed\x8b\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed8c[] = {
  "\xed\x8c\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed8d[] = {
  "\xed\x8d\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed8e[] = {
  "\xed\x8e\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed8f[] = {
  "\xed\x8f\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed90[] = {
  "\xed\x90\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed91[] = {
  "\xed\x91\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed92[] = {
  "\xed\x92\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed93[] = {
  "\xed\x93\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed94[] = {
  "\xed\x94\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed95[] = {
  "\xed\x95\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed96[] = {
  "\xed\x96\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed97[] = {
  "\xed\x97\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb8"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed98[] = {
  "\xed\x98\x94", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb0", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed99[] = {
  "\xed\x99\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed9a[] = {
  "\xed\x9a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed9b[] = {
  "\xed\x9b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed9c[] = {
  "\xed\x9c\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bb_table_ed9d[] = {
  "\xed\x9d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x80"
};

static inline const char *
grn_nfkc170_compose_prefix_e186bb(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bb_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9c";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab0[] = {
  "\xea\xb0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab1[] = {
  "\xea\xb1\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab2[] = {
  "\xea\xb2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab3[] = {
  "\xea\xb3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab4[] = {
  "\xea\xb4\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab5[] = {
  "\xea\xb5\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab6[] = {
  "\xea\xb6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab7[] = {
  "\xea\xb7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab8[] = {
  "\xea\xb8\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eab9[] = {
  "\xea\xb9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eaba[] = {
  "\xea\xba\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eabb[] = {
  "\xea\xbb\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eabc[] = {
  "\xea\xbc\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eabd[] = {
  "\xea\xbd\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eabe[] = {
  "\xea\xbe\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eabf[] = {
  "\xea\xbf\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb80[] = {
  "\xeb\x80\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb81[] = {
  "\xeb\x81\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb82[] = {
  "\xeb\x82\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb83[] = {
  "\xeb\x83\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb84[] = {
  "\xeb\x84\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb85[] = {
  "\xeb\x85\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb86[] = {
  "\xeb\x86\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb87[] = {
  "\xeb\x87\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb88[] = {
  "\xeb\x88\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb89[] = {
  "\xeb\x89\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb8a[] = {
  "\xeb\x8a\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb8b[] = {
  "\xeb\x8b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb8c[] = {
  "\xeb\x8c\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb8d[] = {
  "\xeb\x8d\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb8e[] = {
  "\xeb\x8e\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb8f[] = {
  "\xeb\x8f\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb90[] = {
  "\xeb\x90\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb91[] = {
  "\xeb\x91\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb92[] = {
  "\xeb\x92\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb93[] = {
  "\xeb\x93\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb94[] = {
  "\xeb\x94\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb95[] = {
  "\xeb\x95\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb96[] = {
  "\xeb\x96\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb97[] = {
  "\xeb\x97\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb98[] = {
  "\xeb\x98\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb99[] = {
  "\xeb\x99\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb9a[] = {
  "\xeb\x9a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb9b[] = {
  "\xeb\x9b\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb9c[] = {
  "\xeb\x9c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb9d[] = {
  "\xeb\x9d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb9e[] = {
  "\xeb\x9e\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eb9f[] = {
  "\xeb\x9f\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba0[] = {
  "\xeb\xa0\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba1[] = {
  "\xeb\xa1\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba2[] = {
  "\xeb\xa2\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba3[] = {
  "\xeb\xa3\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba4[] = {
  "\xeb\xa4\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba5[] = {
  "\xeb\xa5\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba6[] = {
  "\xeb\xa6\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba7[] = {
  "\xeb\xa7\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba8[] = {
  "\xeb\xa8\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eba9[] = {
  "\xeb\xa9\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebaa[] = {
  "\xeb\xaa\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebab[] = {
  "\xeb\xab\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebac[] = {
  "\xeb\xac\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebad[] = {
  "\xeb\xad\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebae[] = {
  "\xeb\xae\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebaf[] = {
  "\xeb\xaf\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb0[] = {
  "\xeb\xb0\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb1[] = {
  "\xeb\xb1\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb2[] = {
  "\xeb\xb2\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb3[] = {
  "\xeb\xb3\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb4[] = {
  "\xeb\xb4\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb5[] = {
  "\xeb\xb5\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb6[] = {
  "\xeb\xb6\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb7[] = {
  "\xeb\xb7\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb8[] = {
  "\xeb\xb8\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebb9[] = {
  "\xeb\xb9\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebba[] = {
  "\xeb\xba\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebbb[] = {
  "\xeb\xbb\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebbc[] = {
  "\xeb\xbc\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebbd[] = {
  "\xeb\xbd\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebbe[] = {
  "\xeb\xbe\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ebbf[] = {
  "\xeb\xbf\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec80[] = {
  "\xec\x80\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec81[] = {
  "\xec\x81\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec82[] = {
  "\xec\x82\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec83[] = {
  "\xec\x83\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec84[] = {
  "\xec\x84\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec85[] = {
  "\xec\x85\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec86[] = {
  "\xec\x86\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec87[] = {
  "\xec\x87\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec88[] = {
  "\xec\x88\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec89[] = {
  "\xec\x89\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec8a[] = {
  "\xec\x8a\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec8b[] = {
  "\xec\x8b\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec8c[] = {
  "\xec\x8c\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec8d[] = {
  "\xec\x8d\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec8e[] = {
  "\xec\x8e\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec8f[] = {
  "\xec\x8f\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec90[] = {
  "\xec\x90\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec91[] = {
  "\xec\x91\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec92[] = {
  "\xec\x92\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec93[] = {
  "\xec\x93\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec94[] = {
  "\xec\x94\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec95[] = {
  "\xec\x95\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec96[] = {
  "\xec\x96\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec97[] = {
  "\xec\x97\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec98[] = {
  "\xec\x98\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec99[] = {
  "\xec\x99\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec9a[] = {
  "\xec\x9a\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec9b[] = {
  "\xec\x9b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec9c[] = {
  "\xec\x9c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec9d[] = {
  "\xec\x9d\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec9e[] = {
  "\xec\x9e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ec9f[] = {
  "\xec\x9f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca0[] = {
  "\xec\xa0\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca1[] = {
  "\xec\xa1\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca2[] = {
  "\xec\xa2\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca3[] = {
  "\xec\xa3\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca4[] = {
  "\xec\xa4\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca5[] = {
  "\xec\xa5\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca6[] = {
  "\xec\xa6\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca7[] = {
  "\xec\xa7\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca8[] = {
  "\xec\xa8\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_eca9[] = {
  "\xec\xa9\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecaa[] = {
  "\xec\xaa\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecab[] = {
  "\xec\xab\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecac[] = {
  "\xec\xac\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecad[] = {
  "\xec\xad\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecae[] = {
  "\xec\xae\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecaf[] = {
  "\xec\xaf\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb0[] = {
  "\xec\xb0\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb1[] = {
  "\xec\xb1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb2[] = {
  "\xec\xb2\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb3[] = {
  "\xec\xb3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb4[] = {
  "\xec\xb4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb5[] = {
  "\xec\xb5\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb6[] = {
  "\xec\xb6\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb7[] = {
  "\xec\xb7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb8[] = {
  "\xec\xb8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecb9[] = {
  "\xec\xb9\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecba[] = {
  "\xec\xba\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecbb[] = {
  "\xec\xbb\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecbc[] = {
  "\xec\xbc\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecbd[] = {
  "\xec\xbd\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecbe[] = {
  "\xec\xbe\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ecbf[] = {
  "\xec\xbf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed80[] = {
  "\xed\x80\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed81[] = {
  "\xed\x81\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed82[] = {
  "\xed\x82\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed83[] = {
  "\xed\x83\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed84[] = {
  "\xed\x84\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed85[] = {
  "\xed\x85\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed86[] = {
  "\xed\x86\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed87[] = {
  "\xed\x87\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed88[] = {
  "\xed\x88\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed89[] = {
  "\xed\x89\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed8a[] = {
  "\xed\x8a\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed8b[] = {
  "\xed\x8b\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed8c[] = {
  "\xed\x8c\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed8d[] = {
  "\xed\x8d\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed8e[] = {
  "\xed\x8e\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed8f[] = {
  "\xed\x8f\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed90[] = {
  "\xed\x90\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed91[] = {
  "\xed\x91\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed92[] = {
  "\xed\x92\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed93[] = {
  "\xed\x93\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed94[] = {
  "\xed\x94\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed95[] = {
  "\xed\x95\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed96[] = {
  "\xed\x96\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x81"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed97[] = {
  "\xed\x97\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xb9"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed98[] = {
  "\xed\x98\x95", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb1", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8d"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed99[] = {
  "\xed\x99\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x85"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed9a[] = {
  "\xed\x9a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbd"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed9b[] = {
  "\xed\x9b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x91"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed9c[] = {
  "\xed\x9c\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x89"
};

static const char *grn_nfkc170_compose_prefix_e186bc_table_ed9d[] = {
  "\xed\x9d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x81"
};

static inline const char *
grn_nfkc170_compose_prefix_e186bc(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bc_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9d";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab0[] = {
  "\xea\xb0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab1[] = {
  "\xea\xb1\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab2[] = {
  "\xea\xb2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab3[] = {
  "\xea\xb3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab4[] = {
  "\xea\xb4\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab5[] = {
  "\xea\xb5\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab6[] = {
  "\xea\xb6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab7[] = {
  "\xea\xb7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab8[] = {
  "\xea\xb8\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eab9[] = {
  "\xea\xb9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eaba[] = {
  "\xea\xba\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eabb[] = {
  "\xea\xbb\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eabc[] = {
  "\xea\xbc\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eabd[] = {
  "\xea\xbd\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eabe[] = {
  "\xea\xbe\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eabf[] = {
  "\xea\xbf\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb80[] = {
  "\xeb\x80\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb81[] = {
  "\xeb\x81\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb82[] = {
  "\xeb\x82\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb83[] = {
  "\xeb\x83\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb84[] = {
  "\xeb\x84\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb85[] = {
  "\xeb\x85\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb86[] = {
  "\xeb\x86\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb87[] = {
  "\xeb\x87\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb88[] = {
  "\xeb\x88\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb89[] = {
  "\xeb\x89\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb8a[] = {
  "\xeb\x8a\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb8b[] = {
  "\xeb\x8b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb8c[] = {
  "\xeb\x8c\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb8d[] = {
  "\xeb\x8d\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb8e[] = {
  "\xeb\x8e\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb8f[] = {
  "\xeb\x8f\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb90[] = {
  "\xeb\x90\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb91[] = {
  "\xeb\x91\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb92[] = {
  "\xeb\x92\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb93[] = {
  "\xeb\x93\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb94[] = {
  "\xeb\x94\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb95[] = {
  "\xeb\x95\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb96[] = {
  "\xeb\x96\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb97[] = {
  "\xeb\x97\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb98[] = {
  "\xeb\x98\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb99[] = {
  "\xeb\x99\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb9a[] = {
  "\xeb\x9a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb9b[] = {
  "\xeb\x9b\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb9c[] = {
  "\xeb\x9c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb9d[] = {
  "\xeb\x9d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb9e[] = {
  "\xeb\x9e\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eb9f[] = {
  "\xeb\x9f\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba0[] = {
  "\xeb\xa0\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba1[] = {
  "\xeb\xa1\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba2[] = {
  "\xeb\xa2\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba3[] = {
  "\xeb\xa3\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba4[] = {
  "\xeb\xa4\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba5[] = {
  "\xeb\xa5\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba6[] = {
  "\xeb\xa6\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba7[] = {
  "\xeb\xa7\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba8[] = {
  "\xeb\xa8\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eba9[] = {
  "\xeb\xa9\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebaa[] = {
  "\xeb\xaa\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebab[] = {
  "\xeb\xab\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebac[] = {
  "\xeb\xac\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebad[] = {
  "\xeb\xad\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebae[] = {
  "\xeb\xae\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebaf[] = {
  "\xeb\xaf\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb0[] = {
  "\xeb\xb0\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb1[] = {
  "\xeb\xb1\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb2[] = {
  "\xeb\xb2\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb3[] = {
  "\xeb\xb3\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb4[] = {
  "\xeb\xb4\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb5[] = {
  "\xeb\xb5\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb6[] = {
  "\xeb\xb6\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb7[] = {
  "\xeb\xb7\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb8[] = {
  "\xeb\xb8\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebb9[] = {
  "\xeb\xb9\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebba[] = {
  "\xeb\xba\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebbb[] = {
  "\xeb\xbb\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebbc[] = {
  "\xeb\xbc\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebbd[] = {
  "\xeb\xbd\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebbe[] = {
  "\xeb\xbe\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ebbf[] = {
  "\xeb\xbf\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec80[] = {
  "\xec\x80\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec81[] = {
  "\xec\x81\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec82[] = {
  "\xec\x82\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec83[] = {
  "\xec\x83\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec84[] = {
  "\xec\x84\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec85[] = {
  "\xec\x85\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec86[] = {
  "\xec\x86\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec87[] = {
  "\xec\x87\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec88[] = {
  "\xec\x88\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec89[] = {
  "\xec\x89\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec8a[] = {
  "\xec\x8a\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec8b[] = {
  "\xec\x8b\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec8c[] = {
  "\xec\x8c\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec8d[] = {
  "\xec\x8d\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec8e[] = {
  "\xec\x8e\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec8f[] = {
  "\xec\x8f\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec90[] = {
  "\xec\x90\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec91[] = {
  "\xec\x91\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec92[] = {
  "\xec\x92\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec93[] = {
  "\xec\x93\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec94[] = {
  "\xec\x94\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec95[] = {
  "\xec\x95\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec96[] = {
  "\xec\x96\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec97[] = {
  "\xec\x97\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec98[] = {
  "\xec\x98\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec99[] = {
  "\xec\x99\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec9a[] = {
  "\xec\x9a\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec9b[] = {
  "\xec\x9b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec9c[] = {
  "\xec\x9c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec9d[] = {
  "\xec\x9d\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec9e[] = {
  "\xec\x9e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ec9f[] = {
  "\xec\x9f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca0[] = {
  "\xec\xa0\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca1[] = {
  "\xec\xa1\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca2[] = {
  "\xec\xa2\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca3[] = {
  "\xec\xa3\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca4[] = {
  "\xec\xa4\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca5[] = {
  "\xec\xa5\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca6[] = {
  "\xec\xa6\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca7[] = {
  "\xec\xa7\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca8[] = {
  "\xec\xa8\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_eca9[] = {
  "\xec\xa9\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecaa[] = {
  "\xec\xaa\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecab[] = {
  "\xec\xab\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecac[] = {
  "\xec\xac\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecad[] = {
  "\xec\xad\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecae[] = {
  "\xec\xae\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecaf[] = {
  "\xec\xaf\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb0[] = {
  "\xec\xb0\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb1[] = {
  "\xec\xb1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb2[] = {
  "\xec\xb2\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb3[] = {
  "\xec\xb3\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb4[] = {
  "\xec\xb4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb5[] = {
  "\xec\xb5\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb6[] = {
  "\xec\xb6\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb7[] = {
  "\xec\xb7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb8[] = {
  "\xec\xb8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecb9[] = {
  "\xec\xb9\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecba[] = {
  "\xec\xba\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecbb[] = {
  "\xec\xbb\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecbc[] = {
  "\xec\xbc\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecbd[] = {
  "\xec\xbd\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecbe[] = {
  "\xec\xbe\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ecbf[] = {
  "\xec\xbf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed80[] = {
  "\xed\x80\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed81[] = {
  "\xed\x81\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed82[] = {
  "\xed\x82\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed83[] = {
  "\xed\x83\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed84[] = {
  "\xed\x84\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed85[] = {
  "\xed\x85\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed86[] = {
  "\xed\x86\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed87[] = {
  "\xed\x87\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed88[] = {
  "\xed\x88\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed89[] = {
  "\xed\x89\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed8a[] = {
  "\xed\x8a\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed8b[] = {
  "\xed\x8b\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed8c[] = {
  "\xed\x8c\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed8d[] = {
  "\xed\x8d\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed8e[] = {
  "\xed\x8e\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed8f[] = {
  "\xed\x8f\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed90[] = {
  "\xed\x90\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed91[] = {
  "\xed\x91\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed92[] = {
  "\xed\x92\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed93[] = {
  "\xed\x93\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed94[] = {
  "\xed\x94\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed95[] = {
  "\xed\x95\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed96[] = {
  "\xed\x96\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x82"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed97[] = {
  "\xed\x97\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xba"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed98[] = {
  "\xed\x98\x96", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb2", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8e"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed99[] = {
  "\xed\x99\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x86"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed9a[] = {
  "\xed\x9a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbe"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed9b[] = {
  "\xed\x9b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x92"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed9c[] = {
  "\xed\x9c\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8a"
};

static const char *grn_nfkc170_compose_prefix_e186bd_table_ed9d[] = {
  "\xed\x9d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x82"
};

static inline const char *
grn_nfkc170_compose_prefix_e186bd(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bd_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9e";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186be_table_eab0[] = {
  "\xea\xb0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab1[] = {
  "\xea\xb1\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab2[] = {
  "\xea\xb2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab3[] = {
  "\xea\xb3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab4[] = {
  "\xea\xb4\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab5[] = {
  "\xea\xb5\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab6[] = {
  "\xea\xb6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab7[] = {
  "\xea\xb7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab8[] = {
  "\xea\xb8\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eab9[] = {
  "\xea\xb9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eaba[] = {
  "\xea\xba\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eabb[] = {
  "\xea\xbb\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eabc[] = {
  "\xea\xbc\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eabd[] = {
  "\xea\xbd\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eabe[] = {
  "\xea\xbe\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eabf[] = {
  "\xea\xbf\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb80[] = {
  "\xeb\x80\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb81[] = {
  "\xeb\x81\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb82[] = {
  "\xeb\x82\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb83[] = {
  "\xeb\x83\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb84[] = {
  "\xeb\x84\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb85[] = {
  "\xeb\x85\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb86[] = {
  "\xeb\x86\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb87[] = {
  "\xeb\x87\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb88[] = {
  "\xeb\x88\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb89[] = {
  "\xeb\x89\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb8a[] = {
  "\xeb\x8a\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb8b[] = {
  "\xeb\x8b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb8c[] = {
  "\xeb\x8c\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb8d[] = {
  "\xeb\x8d\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb8e[] = {
  "\xeb\x8e\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb8f[] = {
  "\xeb\x8f\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb90[] = {
  "\xeb\x90\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb91[] = {
  "\xeb\x91\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb92[] = {
  "\xeb\x92\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb93[] = {
  "\xeb\x93\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb94[] = {
  "\xeb\x94\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb95[] = {
  "\xeb\x95\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb96[] = {
  "\xeb\x96\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb97[] = {
  "\xeb\x97\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb98[] = {
  "\xeb\x98\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb99[] = {
  "\xeb\x99\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb9a[] = {
  "\xeb\x9a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb9b[] = {
  "\xeb\x9b\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb9c[] = {
  "\xeb\x9c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb9d[] = {
  "\xeb\x9d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb9e[] = {
  "\xeb\x9e\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eb9f[] = {
  "\xeb\x9f\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba0[] = {
  "\xeb\xa0\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba1[] = {
  "\xeb\xa1\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba2[] = {
  "\xeb\xa2\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba3[] = {
  "\xeb\xa3\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba4[] = {
  "\xeb\xa4\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba5[] = {
  "\xeb\xa5\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba6[] = {
  "\xeb\xa6\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba7[] = {
  "\xeb\xa7\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba8[] = {
  "\xeb\xa8\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eba9[] = {
  "\xeb\xa9\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebaa[] = {
  "\xeb\xaa\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebab[] = {
  "\xeb\xab\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebac[] = {
  "\xeb\xac\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebad[] = {
  "\xeb\xad\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebae[] = {
  "\xeb\xae\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebaf[] = {
  "\xeb\xaf\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb0[] = {
  "\xeb\xb0\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb1[] = {
  "\xeb\xb1\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb2[] = {
  "\xeb\xb2\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb3[] = {
  "\xeb\xb3\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb4[] = {
  "\xeb\xb4\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb5[] = {
  "\xeb\xb5\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb6[] = {
  "\xeb\xb6\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb7[] = {
  "\xeb\xb7\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb8[] = {
  "\xeb\xb8\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebb9[] = {
  "\xeb\xb9\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebba[] = {
  "\xeb\xba\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebbb[] = {
  "\xeb\xbb\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebbc[] = {
  "\xeb\xbc\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebbd[] = {
  "\xeb\xbd\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebbe[] = {
  "\xeb\xbe\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ebbf[] = {
  "\xeb\xbf\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec80[] = {
  "\xec\x80\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec81[] = {
  "\xec\x81\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec82[] = {
  "\xec\x82\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec83[] = {
  "\xec\x83\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec84[] = {
  "\xec\x84\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec85[] = {
  "\xec\x85\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec86[] = {
  "\xec\x86\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec87[] = {
  "\xec\x87\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec88[] = {
  "\xec\x88\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec89[] = {
  "\xec\x89\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec8a[] = {
  "\xec\x8a\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec8b[] = {
  "\xec\x8b\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec8c[] = {
  "\xec\x8c\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec8d[] = {
  "\xec\x8d\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec8e[] = {
  "\xec\x8e\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec8f[] = {
  "\xec\x8f\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec90[] = {
  "\xec\x90\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec91[] = {
  "\xec\x91\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec92[] = {
  "\xec\x92\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec93[] = {
  "\xec\x93\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec94[] = {
  "\xec\x94\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec95[] = {
  "\xec\x95\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec96[] = {
  "\xec\x96\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec97[] = {
  "\xec\x97\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec98[] = {
  "\xec\x98\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec99[] = {
  "\xec\x99\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec9a[] = {
  "\xec\x9a\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec9b[] = {
  "\xec\x9b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec9c[] = {
  "\xec\x9c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec9d[] = {
  "\xec\x9d\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec9e[] = {
  "\xec\x9e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ec9f[] = {
  "\xec\x9f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca0[] = {
  "\xec\xa0\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca1[] = {
  "\xec\xa1\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca2[] = {
  "\xec\xa2\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca3[] = {
  "\xec\xa3\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca4[] = {
  "\xec\xa4\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca5[] = {
  "\xec\xa5\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca6[] = {
  "\xec\xa6\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca7[] = {
  "\xec\xa7\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca8[] = {
  "\xec\xa8\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_eca9[] = {
  "\xec\xa9\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecaa[] = {
  "\xec\xaa\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecab[] = {
  "\xec\xab\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecac[] = {
  "\xec\xac\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecad[] = {
  "\xec\xad\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecae[] = {
  "\xec\xae\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecaf[] = {
  "\xec\xaf\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb0[] = {
  "\xec\xb0\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb1[] = {
  "\xec\xb1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb2[] = {
  "\xec\xb2\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb3[] = {
  "\xec\xb3\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb4[] = {
  "\xec\xb4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb5[] = {
  "\xec\xb5\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb6[] = {
  "\xec\xb6\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb7[] = {
  "\xec\xb7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb8[] = {
  "\xec\xb8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecb9[] = {
  "\xec\xb9\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecba[] = {
  "\xec\xba\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecbb[] = {
  "\xec\xbb\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecbc[] = {
  "\xec\xbc\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecbd[] = {
  "\xec\xbd\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecbe[] = {
  "\xec\xbe\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ecbf[] = {
  "\xec\xbf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed80[] = {
  "\xed\x80\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed81[] = {
  "\xed\x81\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed82[] = {
  "\xed\x82\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed83[] = {
  "\xed\x83\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed84[] = {
  "\xed\x84\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed85[] = {
  "\xed\x85\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed86[] = {
  "\xed\x86\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed87[] = {
  "\xed\x87\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed88[] = {
  "\xed\x88\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed89[] = {
  "\xed\x89\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed8a[] = {
  "\xed\x8a\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed8b[] = {
  "\xed\x8b\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed8c[] = {
  "\xed\x8c\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed8d[] = {
  "\xed\x8d\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed8e[] = {
  "\xed\x8e\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed8f[] = {
  "\xed\x8f\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed90[] = {
  "\xed\x90\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed91[] = {
  "\xed\x91\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed92[] = {
  "\xed\x92\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed93[] = {
  "\xed\x93\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed94[] = {
  "\xed\x94\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed95[] = {
  "\xed\x95\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed96[] = {
  "\xed\x96\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x83"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed97[] = {
  "\xed\x97\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbb"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed98[] = {
  "\xed\x98\x97", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb3", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x8f"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed99[] = {
  "\xed\x99\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x87"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed9a[] = {
  "\xed\x9a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\xbf"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed9b[] = {
  "\xed\x9b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x93"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed9c[] = {
  "\xed\x9c\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8b"
};

static const char *grn_nfkc170_compose_prefix_e186be_table_ed9d[] = {
  "\xed\x9d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x83"
};

static inline const char *
grn_nfkc170_compose_prefix_e186be(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186be_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186be_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186be_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186be_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186be_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\x9f";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab0[] = {
  "\xea\xb0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab1[] = {
  "\xea\xb1\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab2[] = {
  "\xea\xb2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab3[] = {
  "\xea\xb3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab4[] = {
  "\xea\xb4\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab5[] = {
  "\xea\xb5\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab6[] = {
  "\xea\xb6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab7[] = {
  "\xea\xb7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab8[] = {
  "\xea\xb8\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eab9[] = {
  "\xea\xb9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eaba[] = {
  "\xea\xba\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eabb[] = {
  "\xea\xbb\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eabc[] = {
  "\xea\xbc\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eabd[] = {
  "\xea\xbd\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eabe[] = {
  "\xea\xbe\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eabf[] = {
  "\xea\xbf\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb80[] = {
  "\xeb\x80\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb81[] = {
  "\xeb\x81\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb82[] = {
  "\xeb\x82\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb83[] = {
  "\xeb\x83\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb84[] = {
  "\xeb\x84\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb85[] = {
  "\xeb\x85\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb86[] = {
  "\xeb\x86\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb87[] = {
  "\xeb\x87\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb88[] = {
  "\xeb\x88\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb89[] = {
  "\xeb\x89\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb8a[] = {
  "\xeb\x8a\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb8b[] = {
  "\xeb\x8b\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb8c[] = {
  "\xeb\x8c\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb8d[] = {
  "\xeb\x8d\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb8e[] = {
  "\xeb\x8e\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb8f[] = {
  "\xeb\x8f\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb90[] = {
  "\xeb\x90\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb91[] = {
  "\xeb\x91\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb92[] = {
  "\xeb\x92\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb93[] = {
  "\xeb\x93\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb94[] = {
  "\xeb\x94\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb95[] = {
  "\xeb\x95\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb96[] = {
  "\xeb\x96\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb97[] = {
  "\xeb\x97\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb98[] = {
  "\xeb\x98\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb99[] = {
  "\xeb\x99\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb9a[] = {
  "\xeb\x9a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb9b[] = {
  "\xeb\x9b\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb9c[] = {
  "\xeb\x9c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb9d[] = {
  "\xeb\x9d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb9e[] = {
  "\xeb\x9e\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eb9f[] = {
  "\xeb\x9f\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba0[] = {
  "\xeb\xa0\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba1[] = {
  "\xeb\xa1\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba2[] = {
  "\xeb\xa2\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba3[] = {
  "\xeb\xa3\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba4[] = {
  "\xeb\xa4\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba5[] = {
  "\xeb\xa5\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba6[] = {
  "\xeb\xa6\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba7[] = {
  "\xeb\xa7\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba8[] = {
  "\xeb\xa8\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eba9[] = {
  "\xeb\xa9\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebaa[] = {
  "\xeb\xaa\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebab[] = {
  "\xeb\xab\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebac[] = {
  "\xeb\xac\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebad[] = {
  "\xeb\xad\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebae[] = {
  "\xeb\xae\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebaf[] = {
  "\xeb\xaf\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb0[] = {
  "\xeb\xb0\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb1[] = {
  "\xeb\xb1\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb2[] = {
  "\xeb\xb2\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb3[] = {
  "\xeb\xb3\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb4[] = {
  "\xeb\xb4\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb5[] = {
  "\xeb\xb5\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb6[] = {
  "\xeb\xb6\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb7[] = {
  "\xeb\xb7\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb8[] = {
  "\xeb\xb8\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebb9[] = {
  "\xeb\xb9\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebba[] = {
  "\xeb\xba\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebbb[] = {
  "\xeb\xbb\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebbc[] = {
  "\xeb\xbc\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebbd[] = {
  "\xeb\xbd\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebbe[] = {
  "\xeb\xbe\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ebbf[] = {
  "\xeb\xbf\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec80[] = {
  "\xec\x80\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec81[] = {
  "\xec\x81\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec82[] = {
  "\xec\x82\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec83[] = {
  "\xec\x83\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec84[] = {
  "\xec\x84\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec85[] = {
  "\xec\x85\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec86[] = {
  "\xec\x86\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec87[] = {
  "\xec\x87\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec88[] = {
  "\xec\x88\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec89[] = {
  "\xec\x89\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec8a[] = {
  "\xec\x8a\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec8b[] = {
  "\xec\x8b\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec8c[] = {
  "\xec\x8c\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec8d[] = {
  "\xec\x8d\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec8e[] = {
  "\xec\x8e\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec8f[] = {
  "\xec\x8f\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec90[] = {
  "\xec\x90\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec91[] = {
  "\xec\x91\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec92[] = {
  "\xec\x92\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec93[] = {
  "\xec\x93\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec94[] = {
  "\xec\x94\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec95[] = {
  "\xec\x95\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec96[] = {
  "\xec\x96\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec97[] = {
  "\xec\x97\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec98[] = {
  "\xec\x98\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec99[] = {
  "\xec\x99\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec9a[] = {
  "\xec\x9a\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec9b[] = {
  "\xec\x9b\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec9c[] = {
  "\xec\x9c\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec9d[] = {
  "\xec\x9d\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec9e[] = {
  "\xec\x9e\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ec9f[] = {
  "\xec\x9f\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca0[] = {
  "\xec\xa0\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca1[] = {
  "\xec\xa1\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca2[] = {
  "\xec\xa2\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca3[] = {
  "\xec\xa3\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca4[] = {
  "\xec\xa4\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca5[] = {
  "\xec\xa5\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca6[] = {
  "\xec\xa6\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca7[] = {
  "\xec\xa7\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca8[] = {
  "\xec\xa8\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_eca9[] = {
  "\xec\xa9\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecaa[] = {
  "\xec\xaa\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecab[] = {
  "\xec\xab\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecac[] = {
  "\xec\xac\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecad[] = {
  "\xec\xad\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecae[] = {
  "\xec\xae\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecaf[] = {
  "\xec\xaf\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb0[] = {
  "\xec\xb0\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb1[] = {
  "\xec\xb1\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb2[] = {
  "\xec\xb2\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb3[] = {
  "\xec\xb3\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb4[] = {
  "\xec\xb4\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb5[] = {
  "\xec\xb5\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb6[] = {
  "\xec\xb6\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb7[] = {
  "\xec\xb7\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb8[] = {
  "\xec\xb8\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecb9[] = {
  "\xec\xb9\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecba[] = {
  "\xec\xba\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecbb[] = {
  "\xec\xbb\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecbc[] = {
  "\xec\xbc\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecbd[] = {
  "\xec\xbd\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecbe[] = {
  "\xec\xbe\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ecbf[] = {
  "\xec\xbf\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed80[] = {
  "\xed\x80\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed81[] = {
  "\xed\x81\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed82[] = {
  "\xed\x82\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed83[] = {
  "\xed\x83\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed84[] = {
  "\xed\x84\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed85[] = {
  "\xed\x85\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed86[] = {
  "\xed\x86\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed87[] = {
  "\xed\x87\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed88[] = {
  "\xed\x88\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed89[] = {
  "\xed\x89\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed8a[] = {
  "\xed\x8a\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed8b[] = {
  "\xed\x8b\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed8c[] = {
  "\xed\x8c\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed8d[] = {
  "\xed\x8d\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed8e[] = {
  "\xed\x8e\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed8f[] = {
  "\xed\x8f\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed90[] = {
  "\xed\x90\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed91[] = {
  "\xed\x91\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed92[] = {
  "\xed\x92\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed93[] = {
  "\xed\x93\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed94[] = {
  "\xed\x94\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed95[] = {
  "\xed\x95\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed96[] = {
  "\xed\x96\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x84"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed97[] = {
  "\xed\x97\xa0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbc"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed98[] = {
  "\xed\x98\x98", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb4", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x90"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed99[] = {
  "\xed\x99\xac", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x88"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed9a[] = {
  "\xed\x9a\xa4", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x80"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed9b[] = {
  "\xed\x9b\x9c", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb8", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x94"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed9c[] = {
  "\xed\x9c\xb0", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8c"
};

static const char *grn_nfkc170_compose_prefix_e186bf_table_ed9d[] = {
  "\xed\x9d\xa8", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x84"
};

static inline const char *
grn_nfkc170_compose_prefix_e186bf(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e186bf_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa0";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e18780_table_eab0[] = {
  "\xea\xb0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab1[] = {
  "\xea\xb1\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab2[] = {
  "\xea\xb2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab3[] = {
  "\xea\xb3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab4[] = {
  "\xea\xb4\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab5[] = {
  "\xea\xb5\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab6[] = {
  "\xea\xb6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab7[] = {
  "\xea\xb7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab8[] = {
  "\xea\xb8\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eab9[] = {
  "\xea\xb9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eaba[] = {
  "\xea\xba\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eabb[] = {
  "\xea\xbb\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eabc[] = {
  "\xea\xbc\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eabd[] = {
  "\xea\xbd\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eabe[] = {
  "\xea\xbe\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eabf[] = {
  "\xea\xbf\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb80[] = {
  "\xeb\x80\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb81[] = {
  "\xeb\x81\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb82[] = {
  "\xeb\x82\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb83[] = {
  "\xeb\x83\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb84[] = {
  "\xeb\x84\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb85[] = {
  "\xeb\x85\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb86[] = {
  "\xeb\x86\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb87[] = {
  "\xeb\x87\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb88[] = {
  "\xeb\x88\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb89[] = {
  "\xeb\x89\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb8a[] = {
  "\xeb\x8a\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb8b[] = {
  "\xeb\x8b\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb8c[] = {
  "\xeb\x8c\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb8d[] = {
  "\xeb\x8d\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb8e[] = {
  "\xeb\x8e\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb8f[] = {
  "\xeb\x8f\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb90[] = {
  "\xeb\x90\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb91[] = {
  "\xeb\x91\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb92[] = {
  "\xeb\x92\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb93[] = {
  "\xeb\x93\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb94[] = {
  "\xeb\x94\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb95[] = {
  "\xeb\x95\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb96[] = {
  "\xeb\x96\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb97[] = {
  "\xeb\x97\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb98[] = {
  "\xeb\x98\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb99[] = {
  "\xeb\x99\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb9a[] = {
  "\xeb\x9a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb9b[] = {
  "\xeb\x9b\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb9c[] = {
  "\xeb\x9c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb9d[] = {
  "\xeb\x9d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb9e[] = {
  "\xeb\x9e\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eb9f[] = {
  "\xeb\x9f\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba0[] = {
  "\xeb\xa0\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba1[] = {
  "\xeb\xa1\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba2[] = {
  "\xeb\xa2\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba3[] = {
  "\xeb\xa3\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba4[] = {
  "\xeb\xa4\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba5[] = {
  "\xeb\xa5\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba6[] = {
  "\xeb\xa6\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba7[] = {
  "\xeb\xa7\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba8[] = {
  "\xeb\xa8\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eba9[] = {
  "\xeb\xa9\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebaa[] = {
  "\xeb\xaa\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebab[] = {
  "\xeb\xab\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebac[] = {
  "\xeb\xac\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebad[] = {
  "\xeb\xad\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebae[] = {
  "\xeb\xae\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebaf[] = {
  "\xeb\xaf\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb0[] = {
  "\xeb\xb0\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb1[] = {
  "\xeb\xb1\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb2[] = {
  "\xeb\xb2\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb3[] = {
  "\xeb\xb3\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb4[] = {
  "\xeb\xb4\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb5[] = {
  "\xeb\xb5\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb6[] = {
  "\xeb\xb6\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb7[] = {
  "\xeb\xb7\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb8[] = {
  "\xeb\xb8\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebb9[] = {
  "\xeb\xb9\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebba[] = {
  "\xeb\xba\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebbb[] = {
  "\xeb\xbb\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebbc[] = {
  "\xeb\xbc\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebbd[] = {
  "\xeb\xbd\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebbe[] = {
  "\xeb\xbe\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ebbf[] = {
  "\xeb\xbf\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec80[] = {
  "\xec\x80\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec81[] = {
  "\xec\x81\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec82[] = {
  "\xec\x82\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec83[] = {
  "\xec\x83\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec84[] = {
  "\xec\x84\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec85[] = {
  "\xec\x85\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec86[] = {
  "\xec\x86\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec87[] = {
  "\xec\x87\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec88[] = {
  "\xec\x88\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec89[] = {
  "\xec\x89\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec8a[] = {
  "\xec\x8a\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec8b[] = {
  "\xec\x8b\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec8c[] = {
  "\xec\x8c\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec8d[] = {
  "\xec\x8d\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec8e[] = {
  "\xec\x8e\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec8f[] = {
  "\xec\x8f\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec90[] = {
  "\xec\x90\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec91[] = {
  "\xec\x91\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec92[] = {
  "\xec\x92\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec93[] = {
  "\xec\x93\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec94[] = {
  "\xec\x94\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec95[] = {
  "\xec\x95\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec96[] = {
  "\xec\x96\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec97[] = {
  "\xec\x97\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec98[] = {
  "\xec\x98\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec99[] = {
  "\xec\x99\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec9a[] = {
  "\xec\x9a\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec9b[] = {
  "\xec\x9b\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec9c[] = {
  "\xec\x9c\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec9d[] = {
  "\xec\x9d\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec9e[] = {
  "\xec\x9e\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ec9f[] = {
  "\xec\x9f\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca0[] = {
  "\xec\xa0\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca1[] = {
  "\xec\xa1\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca2[] = {
  "\xec\xa2\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca3[] = {
  "\xec\xa3\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca4[] = {
  "\xec\xa4\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca5[] = {
  "\xec\xa5\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca6[] = {
  "\xec\xa6\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca7[] = {
  "\xec\xa7\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca8[] = {
  "\xec\xa8\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_eca9[] = {
  "\xec\xa9\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecaa[] = {
  "\xec\xaa\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecab[] = {
  "\xec\xab\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecac[] = {
  "\xec\xac\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecad[] = {
  "\xec\xad\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecae[] = {
  "\xec\xae\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecaf[] = {
  "\xec\xaf\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb0[] = {
  "\xec\xb0\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb1[] = {
  "\xec\xb1\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb2[] = {
  "\xec\xb2\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb3[] = {
  "\xec\xb3\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb4[] = {
  "\xec\xb4\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb5[] = {
  "\xec\xb5\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb6[] = {
  "\xec\xb6\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb7[] = {
  "\xec\xb7\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb8[] = {
  "\xec\xb8\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecb9[] = {
  "\xec\xb9\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecba[] = {
  "\xec\xba\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecbb[] = {
  "\xec\xbb\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecbc[] = {
  "\xec\xbc\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecbd[] = {
  "\xec\xbd\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecbe[] = {
  "\xec\xbe\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ecbf[] = {
  "\xec\xbf\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed80[] = {
  "\xed\x80\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed81[] = {
  "\xed\x81\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed82[] = {
  "\xed\x82\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed83[] = {
  "\xed\x83\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed84[] = {
  "\xed\x84\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed85[] = {
  "\xed\x85\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed86[] = {
  "\xed\x86\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed87[] = {
  "\xed\x87\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed88[] = {
  "\xed\x88\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed89[] = {
  "\xed\x89\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed8a[] = {
  "\xed\x8a\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed8b[] = {
  "\xed\x8b\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed8c[] = {
  "\xed\x8c\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed8d[] = {
  "\xed\x8d\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed8e[] = {
  "\xed\x8e\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed8f[] = {
  "\xed\x8f\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed90[] = {
  "\xed\x90\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed91[] = {
  "\xed\x91\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed92[] = {
  "\xed\x92\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed93[] = {
  "\xed\x93\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed94[] = {
  "\xed\x94\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed95[] = {
  "\xed\x95\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed96[] = {
  "\xed\x96\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x85"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed97[] = {
  "\xed\x97\xa1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbd"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed98[] = {
  "\xed\x98\x99", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb5", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x91"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed99[] = {
  "\xed\x99\xad", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x89"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed9a[] = {
  "\xed\x9a\xa5", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x81"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed9b[] = {
  "\xed\x9b\x9d", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xb9", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x95"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed9c[] = {
  "\xed\x9c\xb1", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8d"
};

static const char *grn_nfkc170_compose_prefix_e18780_table_ed9d[] = {
  "\xed\x9d\xa9", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x85"
};

static inline const char *
grn_nfkc170_compose_prefix_e18780(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18780_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18780_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18780_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18780_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18780_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa1";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e18781_table_eab0[] = {
  "\xea\xb0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab1[] = {
  "\xea\xb1\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab2[] = {
  "\xea\xb2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab3[] = {
  "\xea\xb3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab4[] = {
  "\xea\xb4\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab5[] = {
  "\xea\xb5\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab6[] = {
  "\xea\xb6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab7[] = {
  "\xea\xb7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab8[] = {
  "\xea\xb8\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eab9[] = {
  "\xea\xb9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eaba[] = {
  "\xea\xba\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eabb[] = {
  "\xea\xbb\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eabc[] = {
  "\xea\xbc\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eabd[] = {
  "\xea\xbd\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eabe[] = {
  "\xea\xbe\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eabf[] = {
  "\xea\xbf\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb80[] = {
  "\xeb\x80\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb81[] = {
  "\xeb\x81\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb82[] = {
  "\xeb\x82\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb83[] = {
  "\xeb\x83\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb84[] = {
  "\xeb\x84\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb85[] = {
  "\xeb\x85\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb86[] = {
  "\xeb\x86\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb87[] = {
  "\xeb\x87\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb88[] = {
  "\xeb\x88\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb89[] = {
  "\xeb\x89\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb8a[] = {
  "\xeb\x8a\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb8b[] = {
  "\xeb\x8b\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb8c[] = {
  "\xeb\x8c\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb8d[] = {
  "\xeb\x8d\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb8e[] = {
  "\xeb\x8e\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb8f[] = {
  "\xeb\x8f\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb90[] = {
  "\xeb\x90\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb91[] = {
  "\xeb\x91\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb92[] = {
  "\xeb\x92\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb93[] = {
  "\xeb\x93\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb94[] = {
  "\xeb\x94\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb95[] = {
  "\xeb\x95\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb96[] = {
  "\xeb\x96\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb97[] = {
  "\xeb\x97\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb98[] = {
  "\xeb\x98\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb99[] = {
  "\xeb\x99\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb9a[] = {
  "\xeb\x9a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb9b[] = {
  "\xeb\x9b\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb9c[] = {
  "\xeb\x9c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb9d[] = {
  "\xeb\x9d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb9e[] = {
  "\xeb\x9e\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eb9f[] = {
  "\xeb\x9f\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba0[] = {
  "\xeb\xa0\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba1[] = {
  "\xeb\xa1\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba2[] = {
  "\xeb\xa2\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba3[] = {
  "\xeb\xa3\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba4[] = {
  "\xeb\xa4\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba5[] = {
  "\xeb\xa5\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba6[] = {
  "\xeb\xa6\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba7[] = {
  "\xeb\xa7\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba8[] = {
  "\xeb\xa8\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eba9[] = {
  "\xeb\xa9\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebaa[] = {
  "\xeb\xaa\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebab[] = {
  "\xeb\xab\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebac[] = {
  "\xeb\xac\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebad[] = {
  "\xeb\xad\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebae[] = {
  "\xeb\xae\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebaf[] = {
  "\xeb\xaf\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb0[] = {
  "\xeb\xb0\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb1[] = {
  "\xeb\xb1\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb2[] = {
  "\xeb\xb2\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb3[] = {
  "\xeb\xb3\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb4[] = {
  "\xeb\xb4\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb5[] = {
  "\xeb\xb5\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb6[] = {
  "\xeb\xb6\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb7[] = {
  "\xeb\xb7\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb8[] = {
  "\xeb\xb8\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebb9[] = {
  "\xeb\xb9\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebba[] = {
  "\xeb\xba\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebbb[] = {
  "\xeb\xbb\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebbc[] = {
  "\xeb\xbc\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebbd[] = {
  "\xeb\xbd\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebbe[] = {
  "\xeb\xbe\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ebbf[] = {
  "\xeb\xbf\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec80[] = {
  "\xec\x80\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec81[] = {
  "\xec\x81\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec82[] = {
  "\xec\x82\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec83[] = {
  "\xec\x83\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec84[] = {
  "\xec\x84\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec85[] = {
  "\xec\x85\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec86[] = {
  "\xec\x86\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec87[] = {
  "\xec\x87\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec88[] = {
  "\xec\x88\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec89[] = {
  "\xec\x89\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec8a[] = {
  "\xec\x8a\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec8b[] = {
  "\xec\x8b\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec8c[] = {
  "\xec\x8c\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec8d[] = {
  "\xec\x8d\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec8e[] = {
  "\xec\x8e\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec8f[] = {
  "\xec\x8f\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec90[] = {
  "\xec\x90\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec91[] = {
  "\xec\x91\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec92[] = {
  "\xec\x92\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec93[] = {
  "\xec\x93\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec94[] = {
  "\xec\x94\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec95[] = {
  "\xec\x95\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec96[] = {
  "\xec\x96\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec97[] = {
  "\xec\x97\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec98[] = {
  "\xec\x98\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec99[] = {
  "\xec\x99\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec9a[] = {
  "\xec\x9a\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec9b[] = {
  "\xec\x9b\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec9c[] = {
  "\xec\x9c\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec9d[] = {
  "\xec\x9d\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec9e[] = {
  "\xec\x9e\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ec9f[] = {
  "\xec\x9f\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca0[] = {
  "\xec\xa0\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca1[] = {
  "\xec\xa1\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca2[] = {
  "\xec\xa2\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca3[] = {
  "\xec\xa3\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca4[] = {
  "\xec\xa4\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca5[] = {
  "\xec\xa5\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca6[] = {
  "\xec\xa6\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca7[] = {
  "\xec\xa7\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca8[] = {
  "\xec\xa8\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_eca9[] = {
  "\xec\xa9\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecaa[] = {
  "\xec\xaa\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecab[] = {
  "\xec\xab\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecac[] = {
  "\xec\xac\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecad[] = {
  "\xec\xad\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecae[] = {
  "\xec\xae\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecaf[] = {
  "\xec\xaf\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb0[] = {
  "\xec\xb0\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb1[] = {
  "\xec\xb1\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb2[] = {
  "\xec\xb2\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb3[] = {
  "\xec\xb3\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb4[] = {
  "\xec\xb4\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb5[] = {
  "\xec\xb5\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb6[] = {
  "\xec\xb6\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb7[] = {
  "\xec\xb7\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb8[] = {
  "\xec\xb8\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecb9[] = {
  "\xec\xb9\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecba[] = {
  "\xec\xba\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecbb[] = {
  "\xec\xbb\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecbc[] = {
  "\xec\xbc\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecbd[] = {
  "\xec\xbd\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecbe[] = {
  "\xec\xbe\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ecbf[] = {
  "\xec\xbf\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed80[] = {
  "\xed\x80\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed81[] = {
  "\xed\x81\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed82[] = {
  "\xed\x82\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed83[] = {
  "\xed\x83\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed84[] = {
  "\xed\x84\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed85[] = {
  "\xed\x85\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed86[] = {
  "\xed\x86\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed87[] = {
  "\xed\x87\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed88[] = {
  "\xed\x88\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed89[] = {
  "\xed\x89\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed8a[] = {
  "\xed\x8a\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed8b[] = {
  "\xed\x8b\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed8c[] = {
  "\xed\x8c\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed8d[] = {
  "\xed\x8d\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed8e[] = {
  "\xed\x8e\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed8f[] = {
  "\xed\x8f\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed90[] = {
  "\xed\x90\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed91[] = {
  "\xed\x91\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed92[] = {
  "\xed\x92\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed93[] = {
  "\xed\x93\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed94[] = {
  "\xed\x94\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed95[] = {
  "\xed\x95\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed96[] = {
  "\xed\x96\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x86"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed97[] = {
  "\xed\x97\xa2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbe"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed98[] = {
  "\xed\x98\x9a", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb6", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x92"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed99[] = {
  "\xed\x99\xae", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x8a"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed9a[] = {
  "\xed\x9a\xa6", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x82"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed9b[] = {
  "\xed\x9b\x9e", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xba", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x96"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed9c[] = {
  "\xed\x9c\xb2", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8e"
};

static const char *grn_nfkc170_compose_prefix_e18781_table_ed9d[] = {
  "\xed\x9d\xaa", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x86"
};

static inline const char *
grn_nfkc170_compose_prefix_e18781(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18781_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18781_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18781_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18781_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18781_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa2";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e18782_table_eab0[] = {
  "\xea\xb0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb0\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb1\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab1[] = {
  "\xea\xb1\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb2\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab2[] = {
  "\xea\xb2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab3[] = {
  "\xea\xb3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb3\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb4\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab4[] = {
  "\xea\xb4\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb5\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab5[] = {
  "\xea\xb5\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab6[] = {
  "\xea\xb6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb6\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab7[] = {
  "\xea\xb7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb7\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xb8\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab8[] = {
  "\xea\xb8\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xb9\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eab9[] = {
  "\xea\xb9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eaba[] = {
  "\xea\xba\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xba\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbb\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eabb[] = {
  "\xea\xbb\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbc\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eabc[] = {
  "\xea\xbc\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eabd[] = {
  "\xea\xbd\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbd\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eabe[] = {
  "\xea\xbe\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xea\xbe\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xea\xbf\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eabf[] = {
  "\xea\xbf\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x80\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb80[] = {
  "\xeb\x80\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb81[] = {
  "\xeb\x81\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x81\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x82\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb82[] = {
  "\xeb\x82\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x83\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb83[] = {
  "\xeb\x83\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb84[] = {
  "\xeb\x84\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x84\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb85[] = {
  "\xeb\x85\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x85\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x86\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb86[] = {
  "\xeb\x86\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x87\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb87[] = {
  "\xeb\x87\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb88[] = {
  "\xeb\x88\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x88\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x89\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb89[] = {
  "\xeb\x89\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8a\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb8a[] = {
  "\xeb\x8a\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb8b[] = {
  "\xeb\x8b\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8b\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb8c[] = {
  "\xeb\x8c\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8c\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x8d\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb8d[] = {
  "\xeb\x8d\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8e\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb8e[] = {
  "\xeb\x8e\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb8f[] = {
  "\xeb\x8f\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x8f\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x90\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb90[] = {
  "\xeb\x90\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x91\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb91[] = {
  "\xeb\x91\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb92[] = {
  "\xeb\x92\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x92\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb93[] = {
  "\xeb\x93\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x93\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x94\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb94[] = {
  "\xeb\x94\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x95\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb95[] = {
  "\xeb\x95\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb96[] = {
  "\xeb\x96\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x96\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x97\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb97[] = {
  "\xeb\x97\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x98\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb98[] = {
  "\xeb\x98\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb99[] = {
  "\xeb\x99\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x99\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb9a[] = {
  "\xeb\x9a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9a\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9b\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb9b[] = {
  "\xeb\x9b\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9c\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb9c[] = {
  "\xeb\x9c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb9d[] = {
  "\xeb\x9d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9d\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\x9e\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb9e[] = {
  "\xeb\x9e\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\x9f\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eb9f[] = {
  "\xeb\x9f\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba0[] = {
  "\xeb\xa0\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa0\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba1[] = {
  "\xeb\xa1\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa1\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa2\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba2[] = {
  "\xeb\xa2\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa3\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba3[] = {
  "\xeb\xa3\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba4[] = {
  "\xeb\xa4\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa4\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa5\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba5[] = {
  "\xeb\xa5\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa6\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba6[] = {
  "\xeb\xa6\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba7[] = {
  "\xeb\xa7\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa7\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba8[] = {
  "\xeb\xa8\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xa8\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xa9\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eba9[] = {
  "\xeb\xa9\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaa\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebaa[] = {
  "\xeb\xaa\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebab[] = {
  "\xeb\xab\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xab\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xac\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebac[] = {
  "\xeb\xac\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xad\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebad[] = {
  "\xeb\xad\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebae[] = {
  "\xeb\xae\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xae\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebaf[] = {
  "\xeb\xaf\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xaf\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb0\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb0[] = {
  "\xeb\xb0\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb1\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb1[] = {
  "\xeb\xb1\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb2[] = {
  "\xeb\xb2\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb2\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb3\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb3[] = {
  "\xeb\xb3\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb4\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb4[] = {
  "\xeb\xb4\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb5[] = {
  "\xeb\xb5\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb5\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb6[] = {
  "\xeb\xb6\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb6\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xb7\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb7[] = {
  "\xeb\xb7\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb8\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb8[] = {
  "\xeb\xb8\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebb9[] = {
  "\xeb\xb9\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xb9\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xba\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebba[] = {
  "\xeb\xba\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbb\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebbb[] = {
  "\xeb\xbb\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebbc[] = {
  "\xeb\xbc\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbc\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebbd[] = {
  "\xeb\xbd\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbd\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xeb\xbe\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebbe[] = {
  "\xeb\xbe\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xeb\xbf\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ebbf[] = {
  "\xeb\xbf\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec80[] = {
  "\xec\x80\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x80\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x81\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec81[] = {
  "\xec\x81\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x82\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec82[] = {
  "\xec\x82\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec83[] = {
  "\xec\x83\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x83\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec84[] = {
  "\xec\x84\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x84\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x85\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec85[] = {
  "\xec\x85\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x86\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec86[] = {
  "\xec\x86\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec87[] = {
  "\xec\x87\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x87\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x88\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec88[] = {
  "\xec\x88\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x89\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec89[] = {
  "\xec\x89\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec8a[] = {
  "\xec\x8a\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8a\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec8b[] = {
  "\xec\x8b\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8b\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8c\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec8c[] = {
  "\xec\x8c\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8d\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec8d[] = {
  "\xec\x8d\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec8e[] = {
  "\xec\x8e\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x8e\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x8f\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec8f[] = {
  "\xec\x8f\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x90\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec90[] = {
  "\xec\x90\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec91[] = {
  "\xec\x91\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x91\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec92[] = {
  "\xec\x92\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x92\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x93\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec93[] = {
  "\xec\x93\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x94\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec94[] = {
  "\xec\x94\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec95[] = {
  "\xec\x95\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x95\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x96\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec96[] = {
  "\xec\x96\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x97\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec97[] = {
  "\xec\x97\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec98[] = {
  "\xec\x98\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x98\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec99[] = {
  "\xec\x99\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x99\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9a\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec9a[] = {
  "\xec\x9a\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9b\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec9b[] = {
  "\xec\x9b\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec9c[] = {
  "\xec\x9c\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9c\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\x9d\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec9d[] = {
  "\xec\x9d\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9e\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec9e[] = {
  "\xec\x9e\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ec9f[] = {
  "\xec\x9f\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\x9f\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca0[] = {
  "\xec\xa0\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa0\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa1\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca1[] = {
  "\xec\xa1\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa2\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca2[] = {
  "\xec\xa2\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca3[] = {
  "\xec\xa3\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa3\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa4\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca4[] = {
  "\xec\xa4\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa5\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca5[] = {
  "\xec\xa5\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca6[] = {
  "\xec\xa6\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa6\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca7[] = {
  "\xec\xa7\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa7\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xa8\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca8[] = {
  "\xec\xa8\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xa9\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_eca9[] = {
  "\xec\xa9\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecaa[] = {
  "\xec\xaa\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xaa\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xab\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecab[] = {
  "\xec\xab\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xac\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecac[] = {
  "\xec\xac\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecad[] = {
  "\xec\xad\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xad\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecae[] = {
  "\xec\xae\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xae\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xaf\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecaf[] = {
  "\xec\xaf\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb0\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb0[] = {
  "\xec\xb0\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb1[] = {
  "\xec\xb1\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb1\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb2\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb2[] = {
  "\xec\xb2\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb3\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb3[] = {
  "\xec\xb3\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb4[] = {
  "\xec\xb4\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb4\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb5[] = {
  "\xec\xb5\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb5\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb6\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb6[] = {
  "\xec\xb6\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb7\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb7[] = {
  "\xec\xb7\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb8[] = {
  "\xec\xb8\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xb8\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xb9\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecb9[] = {
  "\xec\xb9\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xba\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecba[] = {
  "\xec\xba\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecbb[] = {
  "\xec\xbb\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbb\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecbc[] = {
  "\xec\xbc\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbc\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xec\xbd\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecbd[] = {
  "\xec\xbd\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbe\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecbe[] = {
  "\xec\xbe\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ecbf[] = {
  "\xec\xbf\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xec\xbf\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x80\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed80[] = {
  "\xed\x80\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x81\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed81[] = {
  "\xed\x81\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed82[] = {
  "\xed\x82\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x82\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed83[] = {
  "\xed\x83\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x83\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x84\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed84[] = {
  "\xed\x84\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x85\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed85[] = {
  "\xed\x85\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed86[] = {
  "\xed\x86\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x86\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x87\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed87[] = {
  "\xed\x87\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x88\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed88[] = {
  "\xed\x88\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed89[] = {
  "\xed\x89\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x89\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed8a[] = {
  "\xed\x8a\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8a\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8b\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed8b[] = {
  "\xed\x8b\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8c\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed8c[] = {
  "\xed\x8c\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed8d[] = {
  "\xed\x8d\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8d\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x8e\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed8e[] = {
  "\xed\x8e\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x8f\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed8f[] = {
  "\xed\x8f\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed90[] = {
  "\xed\x90\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x90\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed91[] = {
  "\xed\x91\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x91\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x92\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed92[] = {
  "\xed\x92\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x93\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed93[] = {
  "\xed\x93\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed94[] = {
  "\xed\x94\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x94\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x95\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed95[] = {
  "\xed\x95\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x96\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed96[] = {
  "\xed\x96\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\x87"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed97[] = {
  "\xed\x97\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x97\xbf"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed98[] = {
  "\xed\x98\x9b", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x98\xb7", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x99\x93"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed99[] = {
  "\xed\x99\xaf", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9a\x8b"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed9a[] = {
  "\xed\x9a\xa7", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\x83"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed9b[] = {
  "\xed\x9b\x9f", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9b\xbb", NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  "\xed\x9c\x97"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed9c[] = {
  "\xed\x9c\xb3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9d\x8f"
};

static const char *grn_nfkc170_compose_prefix_e18782_table_ed9d[] = {
  "\xed\x9d\xab", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xed\x9e\x87"
};

static inline const char *
grn_nfkc170_compose_prefix_e18782(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xea :
      switch (utf8[1]) {
      case 0xb0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eab0[utf8[2] - 0x80];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eab1[utf8[2] - 0x94];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eab2[utf8[2] - 0x8c];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eab3[utf8[2] - 0x84];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eab4[utf8[2] - 0x98];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eab5[utf8[2] - 0x90];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eab6[utf8[2] - 0x88];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eab7[utf8[2] - 0x80];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eab8[utf8[2] - 0x94];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eab9[utf8[2] - 0x8c];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eaba[utf8[2] - 0x84];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eabb[utf8[2] - 0x98];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eabc[utf8[2] - 0x90];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eabd[utf8[2] - 0x88];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eabe[utf8[2] - 0x80];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eabf[utf8[2] - 0x94];
        }
        break;
      default :
        break;
      }
      break;
    case 0xeb :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb80[utf8[2] - 0x8c];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eb81[utf8[2] - 0x84];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb82[utf8[2] - 0x98];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eb83[utf8[2] - 0x90];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb84[utf8[2] - 0x88];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb85[utf8[2] - 0x80];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eb86[utf8[2] - 0x94];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb87[utf8[2] - 0x8c];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eb88[utf8[2] - 0x84];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb89[utf8[2] - 0x98];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eb8a[utf8[2] - 0x90];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb8b[utf8[2] - 0x88];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb8c[utf8[2] - 0x80];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eb8d[utf8[2] - 0x94];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb8e[utf8[2] - 0x8c];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eb8f[utf8[2] - 0x84];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb90[utf8[2] - 0x98];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eb91[utf8[2] - 0x90];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb92[utf8[2] - 0x88];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb93[utf8[2] - 0x80];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eb94[utf8[2] - 0x94];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb95[utf8[2] - 0x8c];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eb96[utf8[2] - 0x84];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb97[utf8[2] - 0x98];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eb98[utf8[2] - 0x90];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb99[utf8[2] - 0x88];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb9a[utf8[2] - 0x80];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eb9b[utf8[2] - 0x94];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eb9c[utf8[2] - 0x8c];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eb9d[utf8[2] - 0x84];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eb9e[utf8[2] - 0x98];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eb9f[utf8[2] - 0x90];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eba0[utf8[2] - 0x88];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eba1[utf8[2] - 0x80];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eba2[utf8[2] - 0x94];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eba3[utf8[2] - 0x8c];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eba4[utf8[2] - 0x84];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eba5[utf8[2] - 0x98];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eba6[utf8[2] - 0x90];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eba7[utf8[2] - 0x88];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eba8[utf8[2] - 0x80];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eba9[utf8[2] - 0x94];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebaa[utf8[2] - 0x8c];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ebab[utf8[2] - 0x84];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ebac[utf8[2] - 0x98];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ebad[utf8[2] - 0x90];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ebae[utf8[2] - 0x88];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebaf[utf8[2] - 0x80];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb0[utf8[2] - 0x94];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb1[utf8[2] - 0x8c];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb2[utf8[2] - 0x84];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb3[utf8[2] - 0x98];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb4[utf8[2] - 0x90];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb5[utf8[2] - 0x88];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb6[utf8[2] - 0x80];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb7[utf8[2] - 0x94];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb8[utf8[2] - 0x8c];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ebb9[utf8[2] - 0x84];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ebba[utf8[2] - 0x98];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ebbb[utf8[2] - 0x90];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ebbc[utf8[2] - 0x88];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebbd[utf8[2] - 0x80];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ebbe[utf8[2] - 0x94];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ebbf[utf8[2] - 0x8c];
        }
        break;
      default :
        break;
      }
      break;
    case 0xec :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ec80[utf8[2] - 0x84];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec81[utf8[2] - 0x98];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ec82[utf8[2] - 0x90];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec83[utf8[2] - 0x88];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec84[utf8[2] - 0x80];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ec85[utf8[2] - 0x94];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec86[utf8[2] - 0x8c];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ec87[utf8[2] - 0x84];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec88[utf8[2] - 0x98];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ec89[utf8[2] - 0x90];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec8a[utf8[2] - 0x88];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec8b[utf8[2] - 0x80];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ec8c[utf8[2] - 0x94];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec8d[utf8[2] - 0x8c];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ec8e[utf8[2] - 0x84];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec8f[utf8[2] - 0x98];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ec90[utf8[2] - 0x90];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec91[utf8[2] - 0x88];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec92[utf8[2] - 0x80];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ec93[utf8[2] - 0x94];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec94[utf8[2] - 0x8c];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ec95[utf8[2] - 0x84];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec96[utf8[2] - 0x98];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ec97[utf8[2] - 0x90];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec98[utf8[2] - 0x88];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec99[utf8[2] - 0x80];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ec9a[utf8[2] - 0x94];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ec9b[utf8[2] - 0x8c];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ec9c[utf8[2] - 0x84];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec9d[utf8[2] - 0x98];
        }
        break;
      case 0x9e :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ec9e[utf8[2] - 0x90];
        }
        break;
      case 0x9f :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ec9f[utf8[2] - 0x88];
        }
        break;
      case 0xa0 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eca0[utf8[2] - 0x80];
        }
        break;
      case 0xa1 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eca1[utf8[2] - 0x94];
        }
        break;
      case 0xa2 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eca2[utf8[2] - 0x8c];
        }
        break;
      case 0xa3 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_eca3[utf8[2] - 0x84];
        }
        break;
      case 0xa4 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_eca4[utf8[2] - 0x98];
        }
        break;
      case 0xa5 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_eca5[utf8[2] - 0x90];
        }
        break;
      case 0xa6 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_eca6[utf8[2] - 0x88];
        }
        break;
      case 0xa7 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_eca7[utf8[2] - 0x80];
        }
        break;
      case 0xa8 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_eca8[utf8[2] - 0x94];
        }
        break;
      case 0xa9 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_eca9[utf8[2] - 0x8c];
        }
        break;
      case 0xaa :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ecaa[utf8[2] - 0x84];
        }
        break;
      case 0xab :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ecab[utf8[2] - 0x98];
        }
        break;
      case 0xac :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ecac[utf8[2] - 0x90];
        }
        break;
      case 0xad :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ecad[utf8[2] - 0x88];
        }
        break;
      case 0xae :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ecae[utf8[2] - 0x80];
        }
        break;
      case 0xaf :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ecaf[utf8[2] - 0x94];
        }
        break;
      case 0xb0 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb0[utf8[2] - 0x8c];
        }
        break;
      case 0xb1 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb1[utf8[2] - 0x84];
        }
        break;
      case 0xb2 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb2[utf8[2] - 0x98];
        }
        break;
      case 0xb3 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb3[utf8[2] - 0x90];
        }
        break;
      case 0xb4 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb4[utf8[2] - 0x88];
        }
        break;
      case 0xb5 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb5[utf8[2] - 0x80];
        }
        break;
      case 0xb6 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb6[utf8[2] - 0x94];
        }
        break;
      case 0xb7 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb7[utf8[2] - 0x8c];
        }
        break;
      case 0xb8 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb8[utf8[2] - 0x84];
        }
        break;
      case 0xb9 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ecb9[utf8[2] - 0x98];
        }
        break;
      case 0xba :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ecba[utf8[2] - 0x90];
        }
        break;
      case 0xbb :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ecbb[utf8[2] - 0x88];
        }
        break;
      case 0xbc :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ecbc[utf8[2] - 0x80];
        }
        break;
      case 0xbd :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ecbd[utf8[2] - 0x94];
        }
        break;
      case 0xbe :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ecbe[utf8[2] - 0x8c];
        }
        break;
      case 0xbf :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ecbf[utf8[2] - 0x84];
        }
        break;
      default :
        break;
      }
      break;
    case 0xed :
      switch (utf8[1]) {
      case 0x80 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed80[utf8[2] - 0x98];
        }
        break;
      case 0x81 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ed81[utf8[2] - 0x90];
        }
        break;
      case 0x82 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed82[utf8[2] - 0x88];
        }
        break;
      case 0x83 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed83[utf8[2] - 0x80];
        }
        break;
      case 0x84 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ed84[utf8[2] - 0x94];
        }
        break;
      case 0x85 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed85[utf8[2] - 0x8c];
        }
        break;
      case 0x86 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ed86[utf8[2] - 0x84];
        }
        break;
      case 0x87 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed87[utf8[2] - 0x98];
        }
        break;
      case 0x88 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ed88[utf8[2] - 0x90];
        }
        break;
      case 0x89 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed89[utf8[2] - 0x88];
        }
        break;
      case 0x8a :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed8a[utf8[2] - 0x80];
        }
        break;
      case 0x8b :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ed8b[utf8[2] - 0x94];
        }
        break;
      case 0x8c :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed8c[utf8[2] - 0x8c];
        }
        break;
      case 0x8d :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ed8d[utf8[2] - 0x84];
        }
        break;
      case 0x8e :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed8e[utf8[2] - 0x98];
        }
        break;
      case 0x8f :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ed8f[utf8[2] - 0x90];
        }
        break;
      case 0x90 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed90[utf8[2] - 0x88];
        }
        break;
      case 0x91 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed91[utf8[2] - 0x80];
        }
        break;
      case 0x92 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ed92[utf8[2] - 0x94];
        }
        break;
      case 0x93 :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed93[utf8[2] - 0x8c];
        }
        break;
      case 0x94 :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ed94[utf8[2] - 0x84];
        }
        break;
      case 0x95 :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed95[utf8[2] - 0x98];
        }
        break;
      case 0x96 :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ed96[utf8[2] - 0x90];
        }
        break;
      case 0x97 :
        if (utf8[2] >= 0x88 &&
            utf8[2] <= 0xa4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed97[utf8[2] - 0x88];
        }
        break;
      case 0x98 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0xb8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed98[utf8[2] - 0x80];
        }
        break;
      case 0x99 :
        if (utf8[2] >= 0x94 &&
            utf8[2] <= 0xb0) {
          return grn_nfkc170_compose_prefix_e18782_table_ed99[utf8[2] - 0x94];
        }
        break;
      case 0x9a :
        if (utf8[2] >= 0x8c &&
            utf8[2] <= 0xa8) {
          return grn_nfkc170_compose_prefix_e18782_table_ed9a[utf8[2] - 0x8c];
        }
        break;
      case 0x9b :
        if (utf8[2] >= 0x84 &&
            utf8[2] <= 0xbc) {
          return grn_nfkc170_compose_prefix_e18782_table_ed9b[utf8[2] - 0x84];
        }
        break;
      case 0x9c :
        if (utf8[2] >= 0x98 &&
            utf8[2] <= 0xb4) {
          return grn_nfkc170_compose_prefix_e18782_table_ed9c[utf8[2] - 0x98];
        }
        break;
      case 0x9d :
        if (utf8[2] >= 0x90 &&
            utf8[2] <= 0xac) {
          return grn_nfkc170_compose_prefix_e18782_table_ed9d[utf8[2] - 0x90];
        }
        break;
      case 0x9e :
        if (utf8[2] == 0x88) {
          return "\xed\x9e\xa3";
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a2_table_e184[] = {
  "\xea\xb0\x9c", "\xea\xb9\xa8", "\xeb\x82\xb4", "\xeb\x8c\x80", "\xeb\x95\x8c", "\xeb\x9e\x98", "\xeb\xa7\xa4", "\xeb\xb0\xb0",
  "\xeb\xb9\xbc", "\xec\x83\x88", "\xec\x8c\x94", "\xec\x95\xa0", "\xec\x9e\xac", "\xec\xa7\xb8", "\xec\xb1\x84", "\xec\xba\x90",
  "\xed\x83\x9c", "\xed\x8c\xa8", "\xed\x95\xb4"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a2(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a2_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a3_table_e184[] = {
  "\xea\xb0\xb8", "\xea\xba\x84", "\xeb\x83\x90", "\xeb\x8c\x9c", "\xeb\x95\xa8", "\xeb\x9e\xb4", "\xeb\xa8\x80", "\xeb\xb1\x8c",
  "\xeb\xba\x98", "\xec\x83\xa4", "\xec\x8c\xb0", "\xec\x95\xbc", "\xec\x9f\x88", "\xec\xa8\x94", "\xec\xb1\xa0", "\xec\xba\xac",
  "\xed\x83\xb8", "\xed\x8d\x84", "\xed\x96\x90"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a3_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a4_table_e184[] = {
  "\xea\xb1\x94", "\xea\xba\xa0", "\xeb\x83\xac", "\xeb\x8c\xb8", "\xeb\x96\x84", "\xeb\x9f\x90", "\xeb\xa8\x9c", "\xeb\xb1\xa8",
  "\xeb\xba\xb4", "\xec\x84\x80", "\xec\x8d\x8c", "\xec\x96\x98", "\xec\x9f\xa4", "\xec\xa8\xb0", "\xec\xb1\xbc", "\xec\xbb\x88",
  "\xed\x84\x94", "\xed\x8d\xa0", "\xed\x96\xac"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a4_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a5_table_e184[] = {
  "\xea\xb1\xb0", "\xea\xba\xbc", "\xeb\x84\x88", "\xeb\x8d\x94", "\xeb\x96\xa0", "\xeb\x9f\xac", "\xeb\xa8\xb8", "\xeb\xb2\x84",
  "\xeb\xbb\x90", "\xec\x84\x9c", "\xec\x8d\xa8", "\xec\x96\xb4", "\xec\xa0\x80", "\xec\xa9\x8c", "\xec\xb2\x98", "\xec\xbb\xa4",
  "\xed\x84\xb0", "\xed\x8d\xbc", "\xed\x97\x88"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a5_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a6_table_e184[] = {
  "\xea\xb2\x8c", "\xea\xbb\x98", "\xeb\x84\xa4", "\xeb\x8d\xb0", "\xeb\x96\xbc", "\xeb\xa0\x88", "\xeb\xa9\x94", "\xeb\xb2\xa0",
  "\xeb\xbb\xac", "\xec\x84\xb8", "\xec\x8e\x84", "\xec\x97\x90", "\xec\xa0\x9c", "\xec\xa9\xa8", "\xec\xb2\xb4", "\xec\xbc\x80",
  "\xed\x85\x8c", "\xed\x8e\x98", "\xed\x97\xa4"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a6(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a6_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a7_table_e184[] = {
  "\xea\xb2\xa8", "\xea\xbb\xb4", "\xeb\x85\x80", "\xeb\x8e\x8c", "\xeb\x97\x98", "\xeb\xa0\xa4", "\xeb\xa9\xb0", "\xeb\xb2\xbc",
  "\xeb\xbc\x88", "\xec\x85\x94", "\xec\x8e\xa0", "\xec\x97\xac", "\xec\xa0\xb8", "\xec\xaa\x84", "\xec\xb3\x90", "\xec\xbc\x9c",
  "\xed\x85\xa8", "\xed\x8e\xb4", "\xed\x98\x80"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a7(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a7_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a8_table_e184[] = {
  "\xea\xb3\x84", "\xea\xbc\x90", "\xeb\x85\x9c", "\xeb\x8e\xa8", "\xeb\x97\xb4", "\xeb\xa1\x80", "\xeb\xaa\x8c", "\xeb\xb3\x98",
  "\xeb\xbc\xa4", "\xec\x85\xb0", "\xec\x8e\xbc", "\xec\x98\x88", "\xec\xa1\x94", "\xec\xaa\xa0", "\xec\xb3\xac", "\xec\xbc\xb8",
  "\xed\x86\x84", "\xed\x8f\x90", "\xed\x98\x9c"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a8_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185a9_table_e184[] = {
  "\xea\xb3\xa0", "\xea\xbc\xac", "\xeb\x85\xb8", "\xeb\x8f\x84", "\xeb\x98\x90", "\xeb\xa1\x9c", "\xeb\xaa\xa8", "\xeb\xb3\xb4",
  "\xeb\xbd\x80", "\xec\x86\x8c", "\xec\x8f\x98", "\xec\x98\xa4", "\xec\xa1\xb0", "\xec\xaa\xbc", "\xec\xb4\x88", "\xec\xbd\x94",
  "\xed\x86\xa0", "\xed\x8f\xac", "\xed\x98\xb8"
};

static inline const char *
grn_nfkc170_compose_prefix_e185a9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185a9_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185aa_table_e184[] = {
  "\xea\xb3\xbc", "\xea\xbd\x88", "\xeb\x86\x94", "\xeb\x8f\xa0", "\xeb\x98\xac", "\xeb\xa1\xb8", "\xeb\xab\x84", "\xeb\xb4\x90",
  "\xeb\xbd\x9c", "\xec\x86\xa8", "\xec\x8f\xb4", "\xec\x99\x80", "\xec\xa2\x8c", "\xec\xab\x98", "\xec\xb4\xa4", "\xec\xbd\xb0",
  "\xed\x86\xbc", "\xed\x90\x88", "\xed\x99\x94"
};

static inline const char *
grn_nfkc170_compose_prefix_e185aa(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185aa_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185ab_table_e184[] = {
  "\xea\xb4\x98", "\xea\xbd\xa4", "\xeb\x86\xb0", "\xeb\x8f\xbc", "\xeb\x99\x88", "\xeb\xa2\x94", "\xeb\xab\xa0", "\xeb\xb4\xac",
  "\xeb\xbd\xb8", "\xec\x87\x84", "\xec\x90\x90", "\xec\x99\x9c", "\xec\xa2\xa8", "\xec\xab\xb4", "\xec\xb5\x80", "\xec\xbe\x8c",
  "\xed\x87\x98", "\xed\x90\xa4", "\xed\x99\xb0"
};

static inline const char *
grn_nfkc170_compose_prefix_e185ab(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185ab_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185ac_table_e184[] = {
  "\xea\xb4\xb4", "\xea\xbe\x80", "\xeb\x87\x8c", "\xeb\x90\x98", "\xeb\x99\xa4", "\xeb\xa2\xb0", "\xeb\xab\xbc", "\xeb\xb5\x88",
  "\xeb\xbe\x94", "\xec\x87\xa0", "\xec\x90\xac", "\xec\x99\xb8", "\xec\xa3\x84", "\xec\xac\x90", "\xec\xb5\x9c", "\xec\xbe\xa8",
  "\xed\x87\xb4", "\xed\x91\x80", "\xed\x9a\x8c"
};

static inline const char *
grn_nfkc170_compose_prefix_e185ac(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185ac_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185ad_table_e184[] = {
  "\xea\xb5\x90", "\xea\xbe\x9c", "\xeb\x87\xa8", "\xeb\x90\xb4", "\xeb\x9a\x80", "\xeb\xa3\x8c", "\xeb\xac\x98", "\xeb\xb5\xa4",
  "\xeb\xbe\xb0", "\xec\x87\xbc", "\xec\x91\x88", "\xec\x9a\x94", "\xec\xa3\xa0", "\xec\xac\xac", "\xec\xb5\xb8", "\xec\xbf\x84",
  "\xed\x88\x90", "\xed\x91\x9c", "\xed\x9a\xa8"
};

static inline const char *
grn_nfkc170_compose_prefix_e185ad(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185ad_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185ae_table_e184[] = {
  "\xea\xb5\xac", "\xea\xbe\xb8", "\xeb\x88\x84", "\xeb\x91\x90", "\xeb\x9a\x9c", "\xeb\xa3\xa8", "\xeb\xac\xb4", "\xeb\xb6\x80",
  "\xeb\xbf\x8c", "\xec\x88\x98", "\xec\x91\xa4", "\xec\x9a\xb0", "\xec\xa3\xbc", "\xec\xad\x88", "\xec\xb6\x94", "\xec\xbf\xa0",
  "\xed\x88\xac", "\xed\x91\xb8", "\xed\x9b\x84"
};

static inline const char *
grn_nfkc170_compose_prefix_e185ae(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185ae_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185af_table_e184[] = {
  "\xea\xb6\x88", "\xea\xbf\x94", "\xeb\x88\xa0", "\xeb\x91\xac", "\xeb\x9a\xb8", "\xeb\xa4\x84", "\xeb\xad\x90", "\xeb\xb6\x9c",
  "\xeb\xbf\xa8", "\xec\x88\xb4", "\xec\x92\x80", "\xec\x9b\x8c", "\xec\xa4\x98", "\xec\xad\xa4", "\xec\xb6\xb0", "\xec\xbf\xbc",
  "\xed\x89\x88", "\xed\x92\x94", "\xed\x9b\xa0"
};

static inline const char *
grn_nfkc170_compose_prefix_e185af(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185af_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185b0_table_e184[] = {
  "\xea\xb6\xa4", "\xea\xbf\xb0", "\xeb\x88\xbc", "\xeb\x92\x88", "\xeb\x9b\x94", "\xeb\xa4\xa0", "\xeb\xad\xac", "\xeb\xb6\xb8",
  "\xec\x80\x84", "\xec\x89\x90", "\xec\x92\x9c", "\xec\x9b\xa8", "\xec\xa4\xb4", "\xec\xae\x80", "\xec\xb7\x8c", "\xed\x80\x98",
  "\xed\x89\xa4", "\xed\x92\xb0", "\xed\x9b\xbc"
};

static inline const char *
grn_nfkc170_compose_prefix_e185b0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185b0_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185b1_table_e184[] = {
  "\xea\xb7\x80", "\xeb\x80\x8c", "\xeb\x89\x98", "\xeb\x92\xa4", "\xeb\x9b\xb0", "\xeb\xa4\xbc", "\xeb\xae\x88", "\xeb\xb7\x94",
  "\xec\x80\xa0", "\xec\x89\xac", "\xec\x92\xb8", "\xec\x9c\x84", "\xec\xa5\x90", "\xec\xae\x9c", "\xec\xb7\xa8", "\xed\x80\xb4",
  "\xed\x8a\x80", "\xed\x93\x8c", "\xed\x9c\x98"
};

static inline const char *
grn_nfkc170_compose_prefix_e185b1(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185b1_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185b2_table_e184[] = {
  "\xea\xb7\x9c", "\xeb\x80\xa8", "\xeb\x89\xb4", "\xeb\x93\x80", "\xeb\x9c\x8c", "\xeb\xa5\x98", "\xeb\xae\xa4", "\xeb\xb7\xb0",
  "\xec\x80\xbc", "\xec\x8a\x88", "\xec\x93\x94", "\xec\x9c\xa0", "\xec\xa5\xac", "\xec\xae\xb8", "\xec\xb8\x84", "\xed\x81\x90",
  "\xed\x8a\x9c", "\xed\x93\xa8", "\xed\x9c\xb4"
};

static inline const char *
grn_nfkc170_compose_prefix_e185b2(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185b2_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185b3_table_e184[] = {
  "\xea\xb7\xb8", "\xeb\x81\x84", "\xeb\x8a\x90", "\xeb\x93\x9c", "\xeb\x9c\xa8", "\xeb\xa5\xb4", "\xeb\xaf\x80", "\xeb\xb8\x8c",
  "\xec\x81\x98", "\xec\x8a\xa4", "\xec\x93\xb0", "\xec\x9c\xbc", "\xec\xa6\x88", "\xec\xaf\x94", "\xec\xb8\xa0", "\xed\x81\xac",
  "\xed\x8a\xb8", "\xed\x94\x84", "\xed\x9d\x90"
};

static inline const char *
grn_nfkc170_compose_prefix_e185b3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185b3_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185b4_table_e184[] = {
  "\xea\xb8\x94", "\xeb\x81\xa0", "\xeb\x8a\xac", "\xeb\x93\xb8", "\xeb\x9d\x84", "\xeb\xa6\x90", "\xeb\xaf\x9c", "\xeb\xb8\xa8",
  "\xec\x81\xb4", "\xec\x8b\x80", "\xec\x94\x8c", "\xec\x9d\x98", "\xec\xa6\xa4", "\xec\xaf\xb0", "\xec\xb8\xbc", "\xed\x82\x88",
  "\xed\x8b\x94", "\xed\x94\xa0", "\xed\x9d\xac"
};

static inline const char *
grn_nfkc170_compose_prefix_e185b4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185b4_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_e185b5_table_e184[] = {
  "\xea\xb8\xb0", "\xeb\x81\xbc", "\xeb\x8b\x88", "\xeb\x94\x94", "\xeb\x9d\xa0", "\xeb\xa6\xac", "\xeb\xaf\xb8", "\xeb\xb9\x84",
  "\xec\x82\x90", "\xec\x8b\x9c", "\xec\x94\xa8", "\xec\x9d\xb4", "\xec\xa7\x80", "\xec\xb0\x8c", "\xec\xb9\x98", "\xed\x82\xa4",
  "\xed\x8b\xb0", "\xed\x94\xbc", "\xed\x9e\x88"
};

static inline const char *
grn_nfkc170_compose_prefix_e185b5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xe1 :
      switch (utf8[1]) {
      case 0x84 :
        if (utf8[2] >= 0x80 &&
            utf8[2] <= 0x92) {
          return grn_nfkc170_compose_prefix_e185b5_table_e184[utf8[2] - 0x80];
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_f09182ba_table_f09182[] = {
  "\xf0\x91\x82\x9a", NULL, "\xf0\x91\x82\x9c", NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, "\xf0\x91\x82\xab"
};

static inline const char *
grn_nfkc170_compose_prefix_f09182ba(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x82 :
          if (utf8[3] >= 0x99 &&
              utf8[3] <= 0xa5) {
            return grn_nfkc170_compose_prefix_f09182ba_table_f09182[utf8[3] - 0x99];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_f09184a7_table_f09184[] = {
  "\xf0\x91\x84\xae", "\xf0\x91\x84\xaf"
};

static inline const char *
grn_nfkc170_compose_prefix_f09184a7(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] >= 0xb1 &&
              utf8[3] <= 0xb2) {
            return grn_nfkc170_compose_prefix_f09184a7_table_f09184[utf8[3] - 0xb1];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f0918cbe(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x8d :
          if (utf8[3] == 0x87) {
            return "\xf0\x91\x8d\x8b";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f0918d97(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x8d :
          if (utf8[3] == 0x87) {
            return "\xf0\x91\x8d\x8c";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_f0918f89_table_f0918e[] = {
  "\xf0\x91\x8e\x83", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, NULL, NULL, NULL, "\xf0\x91\x8e\x91"
};

static inline const char *
grn_nfkc170_compose_prefix_f0918f89(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x8e :
          if (utf8[3] >= 0x82 &&
              utf8[3] <= 0x90) {
            return grn_nfkc170_compose_prefix_f0918f89_table_f0918e[utf8[3] - 0x82];
          }
          break;
        case 0x8f :
          if (utf8[3] == 0x82) {
            return "\xf0\x91\x8f\x88";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f0918ebb(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x8e :
          if (utf8[3] == 0x84) {
            return "\xf0\x91\x8e\x85";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f0918f82(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x8e :
          if (utf8[3] == 0x8b) {
            return "\xf0\x91\x8e\x8e";
          }
          break;
        case 0x8f :
          if (utf8[3] == 0x82) {
            return "\xf0\x91\x8f\x85";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f0918eb8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x8f :
          if (utf8[3] == 0x82) {
            return "\xf0\x91\x8f\x87";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09192ba(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x92 :
          if (utf8[3] == 0xb9) {
            return "\xf0\x91\x92\xbb";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09192b0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x92 :
          if (utf8[3] == 0xb9) {
            return "\xf0\x91\x92\xbc";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09192bd(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x92 :
          if (utf8[3] == 0xb9) {
            return "\xf0\x91\x92\xbe";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_f09196af_table_f09196[] = {
  "\xf0\x91\x96\xba", "\xf0\x91\x96\xbb"
};

static inline const char *
grn_nfkc170_compose_prefix_f09196af(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0x96 :
          if (utf8[3] >= 0xb8 &&
              utf8[3] <= 0xb9) {
            return grn_nfkc170_compose_prefix_f09196af_table_f09196[utf8[3] - 0xb8];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f091a4b0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x91 :
        switch (utf8[2]) {
        case 0xa4 :
          if (utf8[3] == 0xb5) {
            return "\xf0\x91\xa4\xb8";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f096849e(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] == 0x9e) {
            return "\xf0\x96\x84\xa1";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09684a9(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] == 0x9e) {
            return "\xf0\x96\x84\xa2";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_f096849f_table_f09684[] = {
  "\xf0\x96\x84\xa3", NULL, NULL, NULL, NULL, NULL, NULL, NULL,
  NULL, NULL, NULL, "\xf0\x96\x84\xa4"
};

static inline const char *
grn_nfkc170_compose_prefix_f096849f(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] >= 0x9e &&
              utf8[3] <= 0xa9) {
            return grn_nfkc170_compose_prefix_f096849f_table_f09684[utf8[3] - 0x9e];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09684a0(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] == 0x9e) {
            return "\xf0\x96\x84\xa5";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09684a3(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] == 0x9e) {
            return "\xf0\x96\x84\xa6";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09684a4(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] == 0x9e) {
            return "\xf0\x96\x84\xa7";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f09684a5(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0x84 :
          if (utf8[3] == 0x9e) {
            return "\xf0\x96\x84\xa8";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static const char *grn_nfkc170_compose_prefix_f096b5a7_table_f096b5[] = {
  "\xf0\x96\xb5\xa9", NULL, NULL, NULL, "\xf0\x96\xb5\xa8"
};

static inline const char *
grn_nfkc170_compose_prefix_f096b5a7(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0xb5 :
          if (utf8[3] >= 0xa3 &&
              utf8[3] <= 0xa7) {
            return grn_nfkc170_compose_prefix_f096b5a7_table_f096b5[utf8[3] - 0xa3];
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

static inline const char *
grn_nfkc170_compose_prefix_f096b5a8(const unsigned char *utf8)
{
  {
    switch (utf8[0]) {
    case 0xf0 :
      switch (utf8[1]) {
      case 0x96 :
        switch (utf8[2]) {
        case 0xb5 :
          if (utf8[3] == 0xa3) {
            return "\xf0\x96\xb5\xaa";
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

const char *
grn_nfkc170_compose(const unsigned char *prefix_utf8, const unsigned char *suffix_utf8)
{
  {
    switch (suffix_utf8[0]) {
    case 0xcc :
      switch (suffix_utf8[1]) {
      case 0x80 :
        return grn_nfkc170_compose_prefix_cc80(prefix_utf8);
      case 0x81 :
        return grn_nfkc170_compose_prefix_cc81(prefix_utf8);
      case 0x82 :
        return grn_nfkc170_compose_prefix_cc82(prefix_utf8);
      case 0x83 :
        return grn_nfkc170_compose_prefix_cc83(prefix_utf8);
      case 0x88 :
        return grn_nfkc170_compose_prefix_cc88(prefix_utf8);
      case 0x8a :
        return grn_nfkc170_compose_prefix_cc8a(prefix_utf8);
      case 0xa7 :
        return grn_nfkc170_compose_prefix_cca7(prefix_utf8);
      case 0x84 :
        return grn_nfkc170_compose_prefix_cc84(prefix_utf8);
      case 0x86 :
        return grn_nfkc170_compose_prefix_cc86(prefix_utf8);
      case 0xa8 :
        return grn_nfkc170_compose_prefix_cca8(prefix_utf8);
      case 0x87 :
        return grn_nfkc170_compose_prefix_cc87(prefix_utf8);
      case 0x8c :
        return grn_nfkc170_compose_prefix_cc8c(prefix_utf8);
      case 0x8b :
        return grn_nfkc170_compose_prefix_cc8b(prefix_utf8);
      case 0x9b :
        return grn_nfkc170_compose_prefix_cc9b(prefix_utf8);
      case 0x8f :
        return grn_nfkc170_compose_prefix_cc8f(prefix_utf8);
      case 0x91 :
        return grn_nfkc170_compose_prefix_cc91(prefix_utf8);
      case 0xa6 :
        return grn_nfkc170_compose_prefix_cca6(prefix_utf8);
      case 0xa5 :
        return grn_nfkc170_compose_prefix_cca5(prefix_utf8);
      case 0xa3 :
        return grn_nfkc170_compose_prefix_cca3(prefix_utf8);
      case 0xb1 :
        return grn_nfkc170_compose_prefix_ccb1(prefix_utf8);
      case 0xad :
        return grn_nfkc170_compose_prefix_ccad(prefix_utf8);
      case 0xb0 :
        return grn_nfkc170_compose_prefix_ccb0(prefix_utf8);
      case 0xae :
        return grn_nfkc170_compose_prefix_ccae(prefix_utf8);
      case 0xa4 :
        return grn_nfkc170_compose_prefix_cca4(prefix_utf8);
      case 0x89 :
        return grn_nfkc170_compose_prefix_cc89(prefix_utf8);
      case 0x93 :
        return grn_nfkc170_compose_prefix_cc93(prefix_utf8);
      case 0x94 :
        return grn_nfkc170_compose_prefix_cc94(prefix_utf8);
      case 0xb8 :
        return grn_nfkc170_compose_prefix_ccb8(prefix_utf8);
      default :
        return NULL;
      }
      break;
    case 0xcd :
      switch (suffix_utf8[1]) {
      case 0x82 :
        return grn_nfkc170_compose_prefix_cd82(prefix_utf8);
      case 0x85 :
        return grn_nfkc170_compose_prefix_cd85(prefix_utf8);
      default :
        return NULL;
      }
      break;
    case 0xd9 :
      switch (suffix_utf8[1]) {
      case 0x93 :
        return grn_nfkc170_compose_prefix_d993(prefix_utf8);
      case 0x94 :
        return grn_nfkc170_compose_prefix_d994(prefix_utf8);
      case 0x95 :
        return grn_nfkc170_compose_prefix_d995(prefix_utf8);
      default :
        return NULL;
      }
      break;
    case 0xe0 :
      switch (suffix_utf8[1]) {
      case 0xa4 :
        switch (suffix_utf8[2]) {
        case 0xbc :
          return grn_nfkc170_compose_prefix_e0a4bc(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xa6 :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc170_compose_prefix_e0a6be(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xa7 :
        switch (suffix_utf8[2]) {
        case 0x97 :
          return grn_nfkc170_compose_prefix_e0a797(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xac :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc170_compose_prefix_e0acbe(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xad :
        switch (suffix_utf8[2]) {
        case 0x96 :
          return grn_nfkc170_compose_prefix_e0ad96(prefix_utf8);
        case 0x97 :
          return grn_nfkc170_compose_prefix_e0ad97(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xae :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc170_compose_prefix_e0aebe(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xaf :
        switch (suffix_utf8[2]) {
        case 0x97 :
          return grn_nfkc170_compose_prefix_e0af97(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb1 :
        switch (suffix_utf8[2]) {
        case 0x96 :
          return grn_nfkc170_compose_prefix_e0b196(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb3 :
        switch (suffix_utf8[2]) {
        case 0x95 :
          return grn_nfkc170_compose_prefix_e0b395(prefix_utf8);
        case 0x96 :
          return grn_nfkc170_compose_prefix_e0b396(prefix_utf8);
        case 0x82 :
          return grn_nfkc170_compose_prefix_e0b382(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb4 :
        switch (suffix_utf8[2]) {
        case 0xbe :
          return grn_nfkc170_compose_prefix_e0b4be(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb5 :
        switch (suffix_utf8[2]) {
        case 0x97 :
          return grn_nfkc170_compose_prefix_e0b597(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xb7 :
        switch (suffix_utf8[2]) {
        case 0x8a :
          return grn_nfkc170_compose_prefix_e0b78a(prefix_utf8);
        case 0x8f :
          return grn_nfkc170_compose_prefix_e0b78f(prefix_utf8);
        case 0x9f :
          return grn_nfkc170_compose_prefix_e0b79f(prefix_utf8);
        default :
          return NULL;
        }
        break;
      default :
        break;
      }
      break;
    case 0xe1 :
      switch (suffix_utf8[1]) {
      case 0x80 :
        switch (suffix_utf8[2]) {
        case 0xae :
          return grn_nfkc170_compose_prefix_e180ae(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0x85 :
        switch (suffix_utf8[2]) {
        case 0xa1 :
          return grn_nfkc170_compose_prefix_e185a1(prefix_utf8);
        case 0xa2 :
          return grn_nfkc170_compose_prefix_e185a2(prefix_utf8);
        case 0xa3 :
          return grn_nfkc170_compose_prefix_e185a3(prefix_utf8);
        case 0xa4 :
          return grn_nfkc170_compose_prefix_e185a4(prefix_utf8);
        case 0xa5 :
          return grn_nfkc170_compose_prefix_e185a5(prefix_utf8);
        case 0xa6 :
          return grn_nfkc170_compose_prefix_e185a6(prefix_utf8);
        case 0xa7 :
          return grn_nfkc170_compose_prefix_e185a7(prefix_utf8);
        case 0xa8 :
          return grn_nfkc170_compose_prefix_e185a8(prefix_utf8);
        case 0xa9 :
          return grn_nfkc170_compose_prefix_e185a9(prefix_utf8);
        case 0xaa :
          return grn_nfkc170_compose_prefix_e185aa(prefix_utf8);
        case 0xab :
          return grn_nfkc170_compose_prefix_e185ab(prefix_utf8);
        case 0xac :
          return grn_nfkc170_compose_prefix_e185ac(prefix_utf8);
        case 0xad :
          return grn_nfkc170_compose_prefix_e185ad(prefix_utf8);
        case 0xae :
          return grn_nfkc170_compose_prefix_e185ae(prefix_utf8);
        case 0xaf :
          return grn_nfkc170_compose_prefix_e185af(prefix_utf8);
        case 0xb0 :
          return grn_nfkc170_compose_prefix_e185b0(prefix_utf8);
        case 0xb1 :
          return grn_nfkc170_compose_prefix_e185b1(prefix_utf8);
        case 0xb2 :
          return grn_nfkc170_compose_prefix_e185b2(prefix_utf8);
        case 0xb3 :
          return grn_nfkc170_compose_prefix_e185b3(prefix_utf8);
        case 0xb4 :
          return grn_nfkc170_compose_prefix_e185b4(prefix_utf8);
        case 0xb5 :
          return grn_nfkc170_compose_prefix_e185b5(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0x86 :
        switch (suffix_utf8[2]) {
        case 0xa8 :
          return grn_nfkc170_compose_prefix_e186a8(prefix_utf8);
        case 0xa9 :
          return grn_nfkc170_compose_prefix_e186a9(prefix_utf8);
        case 0xaa :
          return grn_nfkc170_compose_prefix_e186aa(prefix_utf8);
        case 0xab :
          return grn_nfkc170_compose_prefix_e186ab(prefix_utf8);
        case 0xac :
          return grn_nfkc170_compose_prefix_e186ac(prefix_utf8);
        case 0xad :
          return grn_nfkc170_compose_prefix_e186ad(prefix_utf8);
        case 0xae :
          return grn_nfkc170_compose_prefix_e186ae(prefix_utf8);
        case 0xaf :
          return grn_nfkc170_compose_prefix_e186af(prefix_utf8);
        case 0xb0 :
          return grn_nfkc170_compose_prefix_e186b0(prefix_utf8);
        case 0xb1 :
          return grn_nfkc170_compose_prefix_e186b1(prefix_utf8);
        case 0xb2 :
          return grn_nfkc170_compose_prefix_e186b2(prefix_utf8);
        case 0xb3 :
          return grn_nfkc170_compose_prefix_e186b3(prefix_utf8);
        case 0xb4 :
          return grn_nfkc170_compose_prefix_e186b4(prefix_utf8);
        case 0xb5 :
          return grn_nfkc170_compose_prefix_e186b5(prefix_utf8);
        case 0xb6 :
          return grn_nfkc170_compose_prefix_e186b6(prefix_utf8);
        case 0xb7 :
          return grn_nfkc170_compose_prefix_e186b7(prefix_utf8);
        case 0xb8 :
          return grn_nfkc170_compose_prefix_e186b8(prefix_utf8);
        case 0xb9 :
          return grn_nfkc170_compose_prefix_e186b9(prefix_utf8);
        case 0xba :
          return grn_nfkc170_compose_prefix_e186ba(prefix_utf8);
        case 0xbb :
          return grn_nfkc170_compose_prefix_e186bb(prefix_utf8);
        case 0xbc :
          return grn_nfkc170_compose_prefix_e186bc(prefix_utf8);
        case 0xbd :
          return grn_nfkc170_compose_prefix_e186bd(prefix_utf8);
        case 0xbe :
          return grn_nfkc170_compose_prefix_e186be(prefix_utf8);
        case 0xbf :
          return grn_nfkc170_compose_prefix_e186bf(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0x87 :
        switch (suffix_utf8[2]) {
        case 0x80 :
          return grn_nfkc170_compose_prefix_e18780(prefix_utf8);
        case 0x81 :
          return grn_nfkc170_compose_prefix_e18781(prefix_utf8);
        case 0x82 :
          return grn_nfkc170_compose_prefix_e18782(prefix_utf8);
        default :
          return NULL;
        }
        break;
      case 0xac :
        switch (suffix_utf8[2]) {
        case 0xb5 :
          return grn_nfkc170_compose_prefix_e1acb5(prefix_utf8);
        default :
          return NULL;
        }
        break;
      default :
        break;
      }
      break;
    case 0xe3 :
      switch (suffix_utf8[1]) {
      case 0x82 :
        switch (suffix_utf8[2]) {
        case 0x99 :
          return grn_nfkc170_compose_prefix_e38299(prefix_utf8);
        case 0x9a :
          return grn_nfkc170_compose_prefix_e3829a(prefix_utf8);
        default :
          return NULL;
        }
        break;
      default :
        break;
      }
      break;
    case 0xf0 :
      switch (suffix_utf8[1]) {
      case 0x91 :
        switch (suffix_utf8[2]) {
        case 0x82 :
          switch (suffix_utf8[3]) {
          case 0xba :
            return grn_nfkc170_compose_prefix_f09182ba(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x84 :
          switch (suffix_utf8[3]) {
          case 0xa7 :
            return grn_nfkc170_compose_prefix_f09184a7(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x8c :
          switch (suffix_utf8[3]) {
          case 0xbe :
            return grn_nfkc170_compose_prefix_f0918cbe(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x8d :
          switch (suffix_utf8[3]) {
          case 0x97 :
            return grn_nfkc170_compose_prefix_f0918d97(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x8e :
          switch (suffix_utf8[3]) {
          case 0xbb :
            return grn_nfkc170_compose_prefix_f0918ebb(prefix_utf8);
          case 0xb8 :
            return grn_nfkc170_compose_prefix_f0918eb8(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x8f :
          switch (suffix_utf8[3]) {
          case 0x89 :
            return grn_nfkc170_compose_prefix_f0918f89(prefix_utf8);
          case 0x82 :
            return grn_nfkc170_compose_prefix_f0918f82(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x92 :
          switch (suffix_utf8[3]) {
          case 0xba :
            return grn_nfkc170_compose_prefix_f09192ba(prefix_utf8);
          case 0xb0 :
            return grn_nfkc170_compose_prefix_f09192b0(prefix_utf8);
          case 0xbd :
            return grn_nfkc170_compose_prefix_f09192bd(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0x96 :
          switch (suffix_utf8[3]) {
          case 0xaf :
            return grn_nfkc170_compose_prefix_f09196af(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0xa4 :
          switch (suffix_utf8[3]) {
          case 0xb0 :
            return grn_nfkc170_compose_prefix_f091a4b0(prefix_utf8);
          default :
            return NULL;
          }
          break;
        default :
          break;
        }
        break;
      case 0x96 :
        switch (suffix_utf8[2]) {
        case 0x84 :
          switch (suffix_utf8[3]) {
          case 0x9e :
            return grn_nfkc170_compose_prefix_f096849e(prefix_utf8);
          case 0xa9 :
            return grn_nfkc170_compose_prefix_f09684a9(prefix_utf8);
          case 0x9f :
            return grn_nfkc170_compose_prefix_f096849f(prefix_utf8);
          case 0xa0 :
            return grn_nfkc170_compose_prefix_f09684a0(prefix_utf8);
          case 0xa3 :
            return grn_nfkc170_compose_prefix_f09684a3(prefix_utf8);
          case 0xa4 :
            return grn_nfkc170_compose_prefix_f09684a4(prefix_utf8);
          case 0xa5 :
            return grn_nfkc170_compose_prefix_f09684a5(prefix_utf8);
          default :
            return NULL;
          }
          break;
        case 0xb5 :
          switch (suffix_utf8[3]) {
          case 0xa7 :
            return grn_nfkc170_compose_prefix_f096b5a7(prefix_utf8);
          case 0xa8 :
            return grn_nfkc170_compose_prefix_f096b5a8(prefix_utf8);
          default :
            return NULL;
          }
          break;
        default :
          break;
        }
        break;
      default :
        break;
      }
      break;
    default :
      break;
    }
  }

  return NULL;
}

#endif /* GRN_WITH_NFKC */

