######################################################################
# Copyright (c) 2003, International Business Machines
# Corporation and others.  All Rights Reserved.
######################################################################
# Author: Alan Liu
# Created: February 20 2003
# Since: ICU 2.6
######################################################################

# This file follows the format of PropertyAliases.txt
# It contains synthetic property aliases not present
# in the UCD.  Unlike PropertyAliases.txt, it should
# NOT contain a version number.
# ================================================

# ================================================
# Non-enumerated Properties
# ================================================

# ================================================
# Enumerated Non-Binary Properties
# ================================================

# ================================================
# Bitmask Properties
# ================================================
gcm       ; General_Category_Mask

# ================================================
# Binary Properties
# ================================================
Sensitive ; Case_Sensitive
