5#include "../utility/utility.hpp"
12hi_export_module(hikogui.unicode.ucd_bidi_mirroring_glyphs);
14hi_export
namespace hi {
18constexpr auto ucd_bidi_mirroring_glyphs_chunk_size = 64_uz;
19constexpr auto ucd_bidi_mirroring_glyphs_index_width = 5_uz;
20constexpr auto ucd_bidi_mirroring_glyphs_indices_size = 1023_uz;
21constexpr auto ucd_bidi_mirroring_glyph_width = 16_uz;
23static_assert(std::has_single_bit(ucd_bidi_mirroring_glyphs_chunk_size));
25constexpr uint8_t ucd_bidi_mirroring_glyphs_indices_bytes[656] = {
26 0, 68, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198,
27 49,140, 99, 24,198, 50, 12, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,202, 49,140, 99, 24,198, 49,140,
28 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 49,208, 49,140, 99, 74,150,198,140, 99, 24,198, 49,140, 99, 24,
29 198, 49,184,111, 24,198, 49,142, 17,148,233, 81,140,118, 24,198, 49,140, 99,190, 6, 49,140, 99,200,198, 49,140, 99, 24,198, 49,
30 140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99,
31 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198,
32 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140,
33 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,
34 198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,
35 140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99,
36 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198,
37 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140,
38 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,
39 198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,
40 140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99,
41 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198,
42 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140,
43 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,
44 198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,
45 140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 24,198, 49,140, 99, 30,134, 61,240, 96,
46 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
49constexpr uint8_t ucd_bidi_mirroring_glyphs_bytes[3728] = {
50 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
51 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
52 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
53 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 60, 0, 0,
54 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
55 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 91, 0, 0, 0, 0,
56 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
57 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,125, 0, 0, 0,123, 0, 0, 0, 0,
58 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
59 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
60 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,187, 0, 0, 0, 0, 0, 0, 0, 0,
61 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 0, 0, 0, 0, 0,
62 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
63 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
64 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
65 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
66 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
67 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
68 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
69 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 59, 15, 58, 15, 61, 15, 60, 0, 0, 0, 0,
70 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
71 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22,156, 22,155, 0, 0, 0, 0, 0, 0,
72 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
73 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
74 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
75 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
76 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
77 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 58, 32, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
78 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 70, 32, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
79 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
80 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
81 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,126, 32,125, 0, 0,
82 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,142, 32,141, 0, 0,
83 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
84 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
85 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 11, 34, 12, 34, 13, 34, 8, 34, 9, 34, 10, 0, 0, 0, 0,
87 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,245, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,254,
88 41,163, 41,155, 41,160, 0, 0, 42,238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
89 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 61, 34, 60, 0, 0, 0, 0,
90 0, 0, 0, 0, 0, 0, 34,205, 0, 0, 34, 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 69, 0, 0, 0, 0, 0, 0,
91 0, 0, 0, 0, 34, 83, 34, 82, 34, 85, 34, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
92 0, 0, 0, 0, 0, 0, 0, 0, 34,101, 34,100, 34,103, 34,102, 34,105, 34,104, 34,107, 34,106, 0, 0, 0, 0, 34,111, 34,110,
93 34,113, 34,112, 34,115, 34,114, 34,117, 34,116, 34,119, 34,118, 34,121, 34,120, 34,123, 34,122, 34,125, 34,124, 34,127, 34,126,
94 34,129, 34,128, 34,131, 34,130, 34,133, 34,132, 34,135, 34,134, 34,137, 34,136, 34,139, 34,138, 0, 0, 0, 0, 0, 0, 34,144,
95 34,143, 34,146, 34,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
96 0, 0, 0, 0, 34,163, 34,162, 0, 0, 0, 0, 42,222, 0, 0, 42,228, 42,227, 0, 0, 42,229, 0, 0, 0, 0, 0, 0, 0, 0,
97 34,177, 34,176, 34,179, 34,178, 34,181, 34,180, 34,183, 34,182, 39,220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
98 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,202, 34,201, 34,204, 34,203, 34, 67, 0, 0, 0, 0,
99 34,209, 34,208, 0, 0, 0, 0, 0, 0, 0, 0, 34,215, 34,214, 34,217, 34,216, 34,219, 34,218, 34,221, 34,220, 34,223, 34,222,
100 34,225, 34,224, 34,227, 34,226, 34,229, 34,228, 34,231, 34,230, 34,233, 34,232, 34,235, 34,234, 34,237, 34,236, 0, 0, 0, 0,
101 34,241, 34,240, 34,250, 34,251, 34,252, 0, 0, 34,253, 34,254, 0, 0, 0, 0, 34,242, 34,243, 34,244, 34,246, 34,247, 0, 0,
102 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 9, 35, 8, 35, 11, 35, 10, 0, 0, 0, 0, 0, 0, 0, 0,
103 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 42, 35, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
106 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,105, 39,104, 39,107, 39,106, 39,109, 39,108, 39,111, 39,110,
109 39,113, 39,112, 39,115, 39,114, 39,117, 39,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
110 0, 0, 0, 0, 0, 0, 39,196, 39,195, 39,198, 39,197, 0, 0, 39,201, 39,200, 0, 0, 39,205, 0, 0, 39,203, 0, 0, 0, 0,
111 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,214, 39,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,184, 39,222, 39,221, 0, 0,
112 0, 0, 0, 0, 39,227, 39,226, 39,229, 39,228, 39,231, 39,230, 39,233, 39,232, 39,235, 39,234, 39,237, 39,236, 39,239, 39,238,
113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
114 0, 0, 0, 0, 0, 0, 41,132, 41,131, 41,134, 41,133, 41,136, 41,135, 41,138, 41,137, 41,140, 41,139, 41,144, 41,143, 41,142,
115 41,141, 41,146, 41,145, 41,148, 41,147, 41,150, 41,149, 41,152, 41,151, 0, 0, 0, 0, 34, 33, 0, 0, 0, 0, 0, 0, 0, 0,
116 34, 34, 0, 0, 0, 0, 34, 32, 41,165, 41,164, 0, 0, 0, 0, 41,169, 41,168, 41,171, 41,170, 41,173, 41,172, 41,175, 41,174,
117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,152, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
118 41,193, 41,192, 0, 0, 0, 0, 41,197, 41,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,208,
119 41,207, 41,210, 41,209, 0, 0, 41,213, 41,212, 0, 0, 0, 0, 41,217, 41,216, 41,219, 41,218, 0, 0, 0, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,233, 41,232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 21, 0, 0, 0, 0, 41,249, 41,248, 0, 0, 0, 0, 41,253, 41,252, 0, 0, 0, 0,
122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
124 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 44, 42, 43, 42, 46, 42, 45, 0, 0,
125 0, 0, 0, 0, 0, 0, 0, 0, 42, 53, 42, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 61, 42, 60, 0, 0, 0, 0,
126 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
127 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
128 0, 0, 0, 0, 0, 0, 0, 0, 42,101, 42,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,122, 42,121, 42,124, 42,123, 42,126, 42,125, 42,128,
130 42,127, 42,130, 42,129, 42,132, 42,131, 42,134, 42,133, 42,136, 42,135, 42,138, 42,137, 42,140, 42,139, 42,142, 42,141, 42,144,
131 42,143, 42,146, 42,145, 42,148, 42,147, 42,150, 42,149, 42,152, 42,151, 42,154, 42,153, 42,156, 42,155, 42,158, 42,157, 42,160,
132 42,159, 42,162, 42,161, 0, 0, 0, 0, 0, 0, 42,167, 42,166, 42,169, 42,168, 42,171, 42,170, 42,173, 42,172, 0, 0, 42,176,
133 42,175, 42,178, 42,177, 42,180, 42,179, 42,182, 42,181, 42,184, 42,183, 42,186, 42,185, 42,188, 42,187, 42,190, 42,189, 42,192,
134 42,191, 42,194, 42,193, 42,196, 42,195, 42,198, 42,197, 42,200, 42,199, 42,202, 42,201, 42,204, 42,203, 42,206, 42,205, 42,208,
135 42,207, 42,210, 42,209, 42,212, 42,211, 42,214, 42,213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34,166, 0, 0,
136 0, 0, 0, 0, 0, 0, 34,169, 34,168, 34,171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,237, 42,236, 34, 36, 0, 0,
137 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,248, 42,247, 42,250, 42,249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
138 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
139 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, 31, 0, 0,
142 0, 0, 0, 0, 46, 3, 46, 2, 46, 5, 46, 4, 0, 0, 0, 0, 0, 0, 46, 10, 46, 9, 0, 0, 46, 13, 46, 12, 0, 0, 0, 0,
143 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 29, 46, 28, 0, 0, 0, 0,
144 46, 33, 46, 32, 46, 35, 46, 34, 46, 37, 46, 36, 46, 39, 46, 38, 46, 41, 46, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
145 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
146 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
147 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 46, 86, 46, 85, 46, 88, 46, 87, 46, 90, 46, 89, 46, 92, 46, 91, 0, 0, 0, 0, 0, 0,
148 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
150 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 9, 48, 8, 48, 11, 48, 10, 48, 13, 48, 12, 48, 15, 48, 14,
151 48, 17, 48, 16, 0, 0, 0, 0, 48, 21, 48, 20, 48, 23, 48, 22, 48, 25, 48, 24, 48, 27, 48, 26, 0, 0, 0, 0, 0, 0, 0, 0,
152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,254, 90,254, 89,254, 92,254, 91,254, 94,254, 93, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0,254,101,254,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 9,255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
159 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 30, 0, 0,255, 28, 0, 0,
160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
161 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 61, 0, 0,255, 59, 0, 0, 0, 0,
162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
163 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 93, 0, 0,255, 91, 0, 0,255, 96,
164 255, 95, 0, 0,255, 99,255, 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
165 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
178 constexpr auto max_code_point_hi = detail::ucd_bidi_mirroring_glyphs_indices_size - 1;
180 auto code_point_hi = code_point / detail::ucd_bidi_mirroring_glyphs_chunk_size;
181 auto const code_point_lo = code_point % detail::ucd_bidi_mirroring_glyphs_chunk_size;
183 if (code_point_hi > max_code_point_hi) {
184 code_point_hi = max_code_point_hi;
187 auto const chunk_index = load_bits_be<detail::ucd_bidi_mirroring_glyphs_index_width>(
188 detail::ucd_bidi_mirroring_glyphs_indices_bytes,
189 code_point_hi * detail::ucd_bidi_mirroring_glyphs_index_width);
192 auto const index = (chunk_index * detail::ucd_bidi_mirroring_glyphs_chunk_size) + code_point_lo;
195 auto const value = load_bits_be<detail::ucd_bidi_mirroring_glyph_width>(
196 detail::ucd_bidi_mirroring_glyphs_bytes, index * detail::ucd_bidi_mirroring_glyph_width);
198 return char_cast<char32_t>(value);
The HikoGUI namespace.
Definition array_generic.hpp:20
constexpr char32_t ucd_get_bidi_mirroring_glyph(char32_t code_point) noexcept
Get the bidi-mirroring-glyph for a code-point.
Definition ucd_bidi_mirroring_glyphs.hpp:176
DOXYGEN BUG.
Definition algorithm_misc.hpp:20