/* == Start of generated table == */
/*
* The following table is generated by running :
*
* . / gen - arabic - pua . py
*
*/
#ifndef HB_OT_SHAPER_ARABIC_PUA_HH
#define HB_OT_SHAPER_ARABIC_PUA_HH
static const uint8_t
_hb_arabic_u8[464 ] =
{
84 , 86 , 85 , 85 , 85 , 85 , 85 ,213 , 16 , 34 , 34 , 34 , 34 , 34 , 35 , 34 ,
34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 36 , 34 , 34 , 34 , 34 , 34 , 34 , 34 ,
34 , 34 , 34 , 34 , 34 , 34 , 82 , 16 , 0 , 0 , 0 , 0 , 1 , 2 , 3 , 4 ,
0 , 0 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 6 , 0 , 7 ,
0 , 0 , 8 , 0 , 0 , 0 , 9 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 10 , 0 , 11 , 12 , 13 , 14 , 15 ,
16 , 17 , 18 , 19 , 20 , 21 , 0 , 0 , 0 , 22 , 0 , 23 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 ,
32 , 33 , 34 , 35 , 36 , 37 , 38 , 39 , 16 , 34 , 34 , 34 , 35 , 34 , 34 , 34 ,
34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 , 34 ,
34 , 34 , 34 , 34 , 34 , 34 , 34 , 66 , 16 , 50 , 68 , 68 , 68 , 68 , 68 , 68 ,
68 , 68 , 68 , 68 ,101 , 68 , 68 , 68 , 68 , 68 , 68 , 68 , 68 , 68 , 68 , 68 ,
71 , 68 , 68 , 68 , 68 , 68 , 68 , 68 ,152 ,186 , 76 , 77 , 68 ,254 , 16 , 50 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 2 , 3 , 4 , 0 , 0 , 5 , 6 ,
0 , 0 , 0 , 0 , 0 , 0 , 7 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 9 , 0 , 0 , 0 , 10 , 0 ,
0 , 0 , 0 , 0 , 0 , 11 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 12 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 13 , 0 , 0 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 ,
24 , 25 , 26 , 27 , 28 , 23 , 23 , 29 , 30 , 31 , 32 , 33 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 34 , 0 , 0 , 0 , 35 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 36 , 37 , 38 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 39 , 0 , 0 , 40 ,
41 , 42 , 0 , 43 , 44 , 0 , 0 , 45 , 46 , 0 , 47 , 48 , 49 , 0 , 0 , 0 ,
0 , 50 , 0 , 0 , 51 , 52 , 0 , 53 , 54 , 55 , 56 , 57 , 58 , 0 , 0 , 0 ,
0 , 0 , 59 , 60 , 61 , 62 , 63 , 64 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 65 , 0 , 0 , 66 ,
0 , 0 , 67 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 ,
84 , 85 , 86 , 87 , 88 , 89 , 90 , 91 , 92 , 93 , 94 , 95 , 96 , 97 , 98 , 99 ,
};
static const uint16_t
_hb_arabic_u16[720 ] =
{
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,61728 ,61729 ,61730 , 0 , 0 ,61733 , 0 , 0 ,
61736 ,61737 ,61738 ,61739 ,61790 ,61741 ,61742 ,61743 ,61872 ,61873 ,61874 ,61875 ,61876 ,61877 ,61878 ,61879 ,
61880 ,61881 ,61754 ,61755 , 0 ,61757 , 0 ,61759 , 0 , 0 , 0 ,61787 ,61788 ,61789 , 0 , 0 ,
0 , 0 , 0 ,61731 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,61732 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 ,61734 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,61735 ,
0 , 0 , 0 , 0 ,61740 , 0 , 0 , 0 , 0 , 0 , 0 ,61755 , 0 , 0 , 0 ,61759 ,
0 ,61869 ,61765 ,61763 ,61883 ,61767 ,61882 ,61761 ,61770 ,61865 ,61772 ,61774 ,61777 ,61780 ,61783 ,61784 ,
61785 ,61786 ,61792 ,61794 ,61796 ,61798 ,61800 ,61801 ,61802 ,61806 ,61810 ,61696 ,61696 ,61696 ,61696 ,61696 ,
61791 ,61813 ,61816 ,61818 ,61820 ,61822 ,61921 ,61860 ,61861 ,61868 ,61864 ,61895 ,61896 ,61899 ,61892 ,61893 ,
61898 ,61897 ,61894 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 ,61696 , 0 ,
61744 ,61745 ,61746 ,61747 ,61748 ,61749 ,61750 ,61751 ,61752 ,61753 , 0 ,61790 ,61790 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 ,61708 ,61709 ,61710 ,61711 ,61756 ,61758 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 ,61765 ,61766 ,61763 ,61764 ,61883 ,61883 ,61767 ,61768 ,61882 ,61871 ,61870 ,61870 ,61761 ,61762 ,61770 ,
61770 ,61769 ,61769 ,61865 ,61866 ,61772 ,61772 ,61771 ,61771 ,61774 ,61774 ,61773 ,61773 ,61777 ,61776 ,61775 ,
61775 ,61780 ,61779 ,61778 ,61778 ,61783 ,61782 ,61781 ,61781 ,61784 ,61784 ,61785 ,61785 ,61786 ,61786 ,61792 ,
61792 ,61794 ,61794 ,61793 ,61793 ,61796 ,61796 ,61795 ,61795 ,61798 ,61798 ,61797 ,61797 ,61800 ,61800 ,61799 ,
61799 ,61801 ,61801 ,61801 ,61801 ,61802 ,61802 ,61802 ,61802 ,61806 ,61805 ,61803 ,61804 ,61810 ,61809 ,61807 ,
61808 ,61813 ,61813 ,61811 ,61812 ,61816 ,61816 ,61814 ,61815 ,61818 ,61818 ,61817 ,61817 ,61820 ,61820 ,61819 ,
61819 ,61822 ,61822 ,61821 ,61821 ,61921 ,61921 ,61823 ,61823 ,61860 ,61859 ,61857 ,61858 ,61861 ,61861 ,61868 ,
61867 ,61864 ,61863 ,61862 ,61862 ,61888 ,61889 ,61886 ,61887 ,61890 ,61891 ,61885 ,61884 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 ,61984 ,61985 ,61986 , 0 , 0 ,61989 , 0 , 0 ,61992 ,61993 ,61994 ,61995 ,
62046 ,61997 ,61998 ,61999 , 0 , 0 ,62010 ,62011 , 0 ,62013 , 0 ,62015 , 0 , 0 , 0 ,62043 ,
0 ,62045 , 0 , 0 , 0 , 0 , 0 ,61987 , 0 , 0 , 0 ,61988 , 0 , 0 , 0 ,61990 ,
0 , 0 , 0 ,61991 ,61996 , 0 , 0 , 0 , 0 , 0 , 0 ,62011 , 0 , 0 , 0 ,62015 ,
0 ,62165 ,62021 ,62019 ,62170 ,62023 ,62169 ,62017 ,62028 ,62161 ,62032 ,62036 ,62040 ,62048 ,62052 ,62053 ,
62055 ,62057 ,62059 ,62064 ,62068 ,62072 ,62078 ,62114 ,62115 ,62122 ,62126 ,61952 ,61952 ,61952 ,61952 ,61952 ,
62047 ,62130 ,62134 ,62138 ,62142 ,62146 ,62150 ,62154 ,62155 ,62164 ,62160 ,62183 ,62184 ,62187 ,62180 ,62181 ,
62186 ,62185 ,62182 ,61952 ,61952 ,61952 ,61952 , 0 ,62000 ,62001 ,62002 ,62003 ,62004 ,62005 ,62006 ,62007 ,
62008 ,62009 , 0 ,62046 ,62046 , 0 , 0 , 0 ,61964 ,61965 ,61966 ,61967 ,62012 ,62014 , 0 , 0 ,
61954 , 0 ,61981 , 0 , 0 , 0 ,61955 , 0 ,61982 , 0 ,61956 , 0 , 0 , 0 ,62111 , 0 ,
0 , 0 , 0 ,61970 ,61971 ,61972 ,61957 , 0 ,61980 , 0 , 0 , 0 , 0 , 0 ,61958 , 0 ,
61983 , 0 , 0 , 0 , 0 , 0 ,62191 , 0 ,62188 ,62189 ,62192 , 0 , 0 , 0 ,61973 , 0 ,
0 ,62098 , 0 , 0 ,61974 , 0 , 0 ,62099 , 0 , 0 ,62101 , 0 , 0 ,61975 , 0 , 0 ,
62100 , 0 , 0 , 0 ,62080 ,62081 ,62082 ,62102 , 0 ,62083 ,62084 ,62085 ,62103 , 0 , 0 , 0 ,
62106 , 0 ,62107 , 0 ,62108 , 0 , 0 , 0 ,61976 , 0 , 0 , 0 , 0 ,62086 ,62087 ,62088 ,
62109 ,61978 ,62089 ,62090 ,62091 ,62110 ,62093 ,62094 , 0 ,62104 , 0 , 0 , 0 , 0 ,62095 ,62096 ,
62097 ,62105 , 0 , 0 ,61977 , 0 , 0 , 0 , 0 , 0 ,62075 ,62077 ,61968 , 0 , 0 , 0 ,
0 ,62021 ,62022 ,62019 ,62020 ,62170 ,62171 ,62023 ,62024 ,62169 ,62168 ,62166 ,62167 ,62017 ,62018 ,62028 ,
62027 ,62025 ,62026 ,62161 ,62162 ,62032 ,62031 ,62029 ,62030 ,62036 ,62035 ,62033 ,62034 ,62040 ,62039 ,62037 ,
62038 ,62048 ,62044 ,62041 ,62042 ,62052 ,62051 ,62049 ,62050 ,62053 ,62054 ,62055 ,62056 ,62057 ,62058 ,62059 ,
62060 ,62064 ,62063 ,62061 ,62062 ,62068 ,62067 ,62065 ,62066 ,62072 ,62071 ,62069 ,62070 ,62078 ,62076 ,62073 ,
62074 ,62114 ,62113 ,62079 ,62193 ,62118 ,62117 ,62115 ,62116 ,62122 ,62121 ,62119 ,62120 ,62126 ,62125 ,62123 ,
62124 ,62130 ,62129 ,62127 ,62128 ,62134 ,62133 ,62131 ,62132 ,62138 ,62137 ,62135 ,62136 ,62142 ,62141 ,62139 ,
62140 ,62146 ,62145 ,62143 ,62144 ,62150 ,62149 ,62147 ,62148 ,62154 ,62153 ,62151 ,62152 ,62155 ,62156 ,62164 ,
62163 ,62160 ,62159 ,62157 ,62158 ,62176 ,62177 ,62174 ,62175 ,62178 ,62179 ,62172 ,62173 , 0 , 0 , 0 ,
};
static inline unsigned
_hb_arabic_b2 (const uint8_t* a, unsigned i)
{
return (a[i>>2 ]>>((i&3 u)<<1 ))&3 u;
}
static inline unsigned
_hb_arabic_b4 (const uint8_t* a, unsigned i)
{
return (a[i>>1 ]>>((i&1 u)<<2 ))&15 u;
}
static inline uint_fast16_t
_hb_arabic_pua_simp_map (unsigned u)
{
return u<65277 u?_hb_arabic_u16[((_hb_arabic_u8[40 +(((_hb_arabic_b4(8 +_hb_arabic_u8,((_hb_arabic_b2(_hb_arabic_u8,u>>3 >>4 >>4 ))<<4 )+((u>>3 >>4 )&15 u)))<<4 )+((u>>3 )&15 u))])<<3 )+((u)&7 u)]:0 ;
}
static inline uint_fast16_t
_hb_arabic_pua_trad_map (unsigned u)
{
return u<65277 u?_hb_arabic_u16[320 +(((_hb_arabic_u8[208 +(((_hb_arabic_b4(168 +_hb_arabic_u8,((_hb_arabic_b4(136 +_hb_arabic_u8,u>>2 >>4 >>4 ))<<4 )+((u>>2 >>4 )&15 u)))<<4 )+((u>>2 )&15 u))])<<2 )+((u)&3 u))]:0 ;
}
#endif /* HB_OT_SHAPER_ARABIC_PUA_HH */
/* == End of generated table == */
Messung V0.5 in Prozent C=96 H=98 G=96