master
   1// -*- C++ -*-
   2//===----------------------------------------------------------------------===//
   3//
   4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
   5// See https://llvm.org/LICENSE.txt for license information.
   6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
   7//
   8//===----------------------------------------------------------------------===//
   9
  10// WARNING, this entire header is generated by
  11// utils/generate_extended_grapheme_cluster_table.py
  12// DO NOT MODIFY!
  13
  14// UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE
  15//
  16// See Terms of Use <https://www.unicode.org/copyright.html>
  17// for definitions of Unicode Inc.'s Data Files and Software.
  18//
  19// NOTICE TO USER: Carefully read the following legal agreement.
  20// BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S
  21// DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"),
  22// YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE
  23// TERMS AND CONDITIONS OF THIS AGREEMENT.
  24// IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE
  25// THE DATA FILES OR SOFTWARE.
  26//
  27// COPYRIGHT AND PERMISSION NOTICE
  28//
  29// Copyright (c) 1991-2022 Unicode, Inc. All rights reserved.
  30// Distributed under the Terms of Use in https://www.unicode.org/copyright.html.
  31//
  32// Permission is hereby granted, free of charge, to any person obtaining
  33// a copy of the Unicode data files and any associated documentation
  34// (the "Data Files") or Unicode software and any associated documentation
  35// (the "Software") to deal in the Data Files or Software
  36// without restriction, including without limitation the rights to use,
  37// copy, modify, merge, publish, distribute, and/or sell copies of
  38// the Data Files or Software, and to permit persons to whom the Data Files
  39// or Software are furnished to do so, provided that either
  40// (a) this copyright and permission notice appear with all copies
  41// of the Data Files or Software, or
  42// (b) this copyright and permission notice appear in associated
  43// Documentation.
  44//
  45// THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
  46// ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  47// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  48// NONINFRINGEMENT OF THIRD PARTY RIGHTS.
  49// IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
  50// NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
  51// DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
  52// DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  53// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  54// PERFORMANCE OF THE DATA FILES OR SOFTWARE.
  55//
  56// Except as contained in this notice, the name of a copyright holder
  57// shall not be used in advertising or otherwise to promote the sale,
  58// use or other dealings in these Data Files or Software without prior
  59// written authorization of the copyright holder.
  60
  61#ifndef _LIBCPP___FORMAT_EXTENDED_GRAPHEME_CLUSTER_TABLE_H
  62#define _LIBCPP___FORMAT_EXTENDED_GRAPHEME_CLUSTER_TABLE_H
  63
  64#include <__algorithm/ranges_upper_bound.h>
  65#include <__config>
  66#include <__cstddef/ptrdiff_t.h>
  67#include <__iterator/access.h>
  68#include <cstdint>
  69
  70#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
  71#  pragma GCC system_header
  72#endif
  73
  74_LIBCPP_BEGIN_NAMESPACE_STD
  75
  76#if _LIBCPP_STD_VER >= 20
  77
  78namespace __extended_grapheme_custer_property_boundary {
  79
  80enum class __property : uint8_t {
  81  // Values generated from the data files.
  82  __CR,
  83  __Control,
  84  __Extend,
  85  __Extended_Pictographic,
  86  __L,
  87  __LF,
  88  __LV,
  89  __LVT,
  90  __Prepend,
  91  __Regional_Indicator,
  92  __SpacingMark,
  93  __T,
  94  __V,
  95  __ZWJ,
  96
  97  // The properies below aren't stored in the "database".
  98
  99  // Text position properties.
 100  __sot,
 101  __eot,
 102
 103  // The code unit has none of above properties.
 104  __none
 105};
 106
 107/// The entries of the extended grapheme cluster bondary property table.
 108///
 109/// The data is generated from
 110/// - https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt
 111/// - https://www.unicode.org/Public/UCD/latest/ucd/emoji/emoji-data.txt
 112///
 113/// The data has 3 values
 114/// - bits [0, 3] The property. One of the values generated from the datafiles
 115///   of \ref __property
 116/// - bits [4, 10] The size of the range.
 117/// - bits [11, 31] The lower bound code point of the range. The upper bound of
 118///   the range is lower bound + size.
 119///
 120/// The 7 bits for the size allow a maximum range of 128 elements. Some ranges
 121/// in the Unicode tables are larger. They are stored in multiple consecutive
 122/// ranges in the data table. An alternative would be to store the sizes in a
 123/// separate 16-bit value. The original MSVC STL code had such an approach, but
 124/// this approach uses less space for the data and is about 4% faster in the
 125/// following benchmark.
 126/// libcxx/benchmarks/std_format_spec_string_unicode.bench.cpp
 127// clang-format off
 128_LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[1501] = {
 129    0x00000091,
 130    0x00005005,
 131    0x00005811,
 132    0x00006800,
 133    0x00007111,
 134    0x0003fa01,
 135    0x00054803,
 136    0x00056801,
 137    0x00057003,
 138    0x001806f2,
 139    0x00241862,
 140    0x002c8ac2,
 141    0x002df802,
 142    0x002e0812,
 143    0x002e2012,
 144    0x002e3802,
 145    0x00300058,
 146    0x003080a2,
 147    0x0030e001,
 148    0x00325942,
 149    0x00338002,
 150    0x0036b062,
 151    0x0036e808,
 152    0x0036f852,
 153    0x00373812,
 154    0x00375032,
 155    0x00387808,
 156    0x00388802,
 157    0x003981a2,
 158    0x003d30a2,
 159    0x003f5882,
 160    0x003fe802,
 161    0x0040b032,
 162    0x0040d882,
 163    0x00412822,
 164    0x00414842,
 165    0x0042c822,
 166    0x00448018,
 167    0x0044b882,
 168    0x00465172,
 169    0x00471008,
 170    0x004719f2,
 171    0x0048180a,
 172    0x0049d002,
 173    0x0049d80a,
 174    0x0049e002,
 175    0x0049f02a,
 176    0x004a0872,
 177    0x004a483a,
 178    0x004a6802,
 179    0x004a701a,
 180    0x004a8862,
 181    0x004b1012,
 182    0x004c0802,
 183    0x004c101a,
 184    0x004de002,
 185    0x004df002,
 186    0x004df81a,
 187    0x004e0832,
 188    0x004e381a,
 189    0x004e581a,
 190    0x004e6802,
 191    0x004eb802,
 192    0x004f1012,
 193    0x004ff002,
 194    0x00500812,
 195    0x0050180a,
 196    0x0051e002,
 197    0x0051f02a,
 198    0x00520812,
 199    0x00523812,
 200    0x00525822,
 201    0x00528802,
 202    0x00538012,
 203    0x0053a802,
 204    0x00540812,
 205    0x0054180a,
 206    0x0055e002,
 207    0x0055f02a,
 208    0x00560842,
 209    0x00563812,
 210    0x0056480a,
 211    0x0056581a,
 212    0x00566802,
 213    0x00571012,
 214    0x0057d052,
 215    0x00580802,
 216    0x0058101a,
 217    0x0059e002,
 218    0x0059f012,
 219    0x005a000a,
 220    0x005a0832,
 221    0x005a381a,
 222    0x005a581a,
 223    0x005a6802,
 224    0x005aa822,
 225    0x005b1012,
 226    0x005c1002,
 227    0x005df002,
 228    0x005df80a,
 229    0x005e0002,
 230    0x005e081a,
 231    0x005e302a,
 232    0x005e502a,
 233    0x005e6802,
 234    0x005eb802,
 235    0x00600002,
 236    0x0060082a,
 237    0x00602002,
 238    0x0061e002,
 239    0x0061f022,
 240    0x0062083a,
 241    0x00623022,
 242    0x00625032,
 243    0x0062a812,
 244    0x00631012,
 245    0x00640802,
 246    0x0064101a,
 247    0x0065e002,
 248    0x0065f00a,
 249    0x0065f812,
 250    0x0066080a,
 251    0x00661002,
 252    0x0066181a,
 253    0x00663022,
 254    0x00665032,
 255    0x0066a812,
 256    0x00671012,
 257    0x0067980a,
 258    0x00680012,
 259    0x0068101a,
 260    0x0069d812,
 261    0x0069f002,
 262    0x0069f81a,
 263    0x006a0832,
 264    0x006a302a,
 265    0x006a502a,
 266    0x006a6802,
 267    0x006a7008,
 268    0x006ab802,
 269    0x006b1012,
 270    0x006c0802,
 271    0x006c101a,
 272    0x006e5002,
 273    0x006e7802,
 274    0x006e801a,
 275    0x006e9022,
 276    0x006eb002,
 277    0x006ec06a,
 278    0x006ef802,
 279    0x006f901a,
 280    0x00718802,
 281    0x0071980a,
 282    0x0071a062,
 283    0x00723872,
 284    0x00758802,
 285    0x0075980a,
 286    0x0075a082,
 287    0x00764062,
 288    0x0078c012,
 289    0x0079a802,
 290    0x0079b802,
 291    0x0079c802,
 292    0x0079f01a,
 293    0x007b88d2,
 294    0x007bf80a,
 295    0x007c0042,
 296    0x007c3012,
 297    0x007c68a2,
 298    0x007cca32,
 299    0x007e3002,
 300    0x00816832,
 301    0x0081880a,
 302    0x00819052,
 303    0x0081c812,
 304    0x0081d81a,
 305    0x0081e812,
 306    0x0082b01a,
 307    0x0082c012,
 308    0x0082f022,
 309    0x00838832,
 310    0x00841002,
 311    0x0084200a,
 312    0x00842812,
 313    0x00846802,
 314    0x0084e802,
 315    0x008805f4,
 316    0x008b047c,
 317    0x008d457b,
 318    0x009ae822,
 319    0x00b89032,
 320    0x00b99022,
 321    0x00ba9012,
 322    0x00bb9012,
 323    0x00bda012,
 324    0x00bdb00a,
 325    0x00bdb862,
 326    0x00bdf07a,
 327    0x00be3002,
 328    0x00be381a,
 329    0x00be48a2,
 330    0x00bee802,
 331    0x00c05822,
 332    0x00c07001,
 333    0x00c07802,
 334    0x00c42812,
 335    0x00c54802,
 336    0x00c90022,
 337    0x00c9183a,
 338    0x00c93812,
 339    0x00c9482a,
 340    0x00c9801a,
 341    0x00c99002,
 342    0x00c9985a,
 343    0x00c9c822,
 344    0x00d0b812,
 345    0x00d0c81a,
 346    0x00d0d802,
 347    0x00d2a80a,
 348    0x00d2b002,
 349    0x00d2b80a,
 350    0x00d2c062,
 351    0x00d30002,
 352    0x00d31002,
 353    0x00d32872,
 354    0x00d3685a,
 355    0x00d39892,
 356    0x00d3f802,
 357    0x00d581e2,
 358    0x00d80032,
 359    0x00d8200a,
 360    0x00d9a092,
 361    0x00d9f03a,
 362    0x00da1022,
 363    0x00db5882,
 364    0x00dc0012,
 365    0x00dc100a,
 366    0x00dd080a,
 367    0x00dd1032,
 368    0x00dd301a,
 369    0x00dd4052,
 370    0x00df3002,
 371    0x00df380a,
 372    0x00df4012,
 373    0x00df502a,
 374    0x00df6802,
 375    0x00df700a,
 376    0x00df7842,
 377    0x00e1207a,
 378    0x00e16072,
 379    0x00e1a01a,
 380    0x00e1b012,
 381    0x00e68022,
 382    0x00e6a0c2,
 383    0x00e7080a,
 384    0x00e71062,
 385    0x00e76802,
 386    0x00e7a002,
 387    0x00e7b80a,
 388    0x00e7c012,
 389    0x00ee03f2,
 390    0x01005801,
 391    0x01006002,
 392    0x0100680d,
 393    0x01007011,
 394    0x01014061,
 395    0x0101e003,
 396    0x01024803,
 397    0x010300f1,
 398    0x01068202,
 399    0x01091003,
 400    0x0109c803,
 401    0x010ca053,
 402    0x010d4813,
 403    0x0118d013,
 404    0x01194003,
 405    0x011c4003,
 406    0x011e7803,
 407    0x011f48a3,
 408    0x011fc023,
 409    0x01261003,
 410    0x012d5013,
 411    0x012db003,
 412    0x012e0003,
 413    0x012fd833,
 414    0x01300053,
 415    0x013038b3,
 416    0x0130a713,
 417    0x01348753,
 418    0x013840a3,
 419    0x0138a003,
 420    0x0138b003,
 421    0x0138e803,
 422    0x01390803,
 423    0x01394003,
 424    0x01399813,
 425    0x013a2003,
 426    0x013a3803,
 427    0x013a6003,
 428    0x013a7003,
 429    0x013a9823,
 430    0x013ab803,
 431    0x013b1843,
 432    0x013ca823,
 433    0x013d0803,
 434    0x013d8003,
 435    0x013df803,
 436    0x0149a013,
 437    0x01582823,
 438    0x0158d813,
 439    0x015a8003,
 440    0x015aa803,
 441    0x01677822,
 442    0x016bf802,
 443    0x016f01f2,
 444    0x01815052,
 445    0x01818003,
 446    0x0181e803,
 447    0x0184c812,
 448    0x0194b803,
 449    0x0194c803,
 450    0x05337832,
 451    0x0533a092,
 452    0x0534f012,
 453    0x05378012,
 454    0x05401002,
 455    0x05403002,
 456    0x05405802,
 457    0x0541181a,
 458    0x05412812,
 459    0x0541380a,
 460    0x05416002,
 461    0x0544001a,
 462    0x0545a0fa,
 463    0x05462012,
 464    0x05470112,
 465    0x0547f802,
 466    0x05493072,
 467    0x054a38a2,
 468    0x054a900a,
 469    0x054a9802,
 470    0x054b01c4,
 471    0x054c0022,
 472    0x054c180a,
 473    0x054d9802,
 474    0x054da01a,
 475    0x054db032,
 476    0x054dd01a,
 477    0x054de012,
 478    0x054df01a,
 479    0x054e0002,
 480    0x054f2802,
 481    0x05514852,
 482    0x0551781a,
 483    0x05518812,
 484    0x0551981a,
 485    0x0551a812,
 486    0x05521802,
 487    0x05526002,
 488    0x0552680a,
 489    0x0553e002,
 490    0x05558002,
 491    0x05559022,
 492    0x0555b812,
 493    0x0555f012,
 494    0x05560802,
 495    0x0557580a,
 496    0x05576012,
 497    0x0557701a,
 498    0x0557a80a,
 499    0x0557b002,
 500    0x055f181a,
 501    0x055f2802,
 502    0x055f301a,
 503    0x055f4002,
 504    0x055f481a,
 505    0x055f600a,
 506    0x055f6802,
 507    0x05600006,
 508    0x056009a7,
 509    0x0560e006,
 510    0x0560e9a7,
 511    0x0561c006,
 512    0x0561c9a7,
 513    0x0562a006,
 514    0x0562a9a7,
 515    0x05638006,
 516    0x056389a7,
 517    0x05646006,
 518    0x056469a7,
 519    0x05654006,
 520    0x056549a7,
 521    0x05662006,
 522    0x056629a7,
 523    0x05670006,
 524    0x056709a7,
 525    0x0567e006,
 526    0x0567e9a7,
 527    0x0568c006,
 528    0x0568c9a7,
 529    0x0569a006,
 530    0x0569a9a7,
 531    0x056a8006,
 532    0x056a89a7,
 533    0x056b6006,
 534    0x056b69a7,
 535    0x056c4006,
 536    0x056c49a7,
 537    0x056d2006,
 538    0x056d29a7,
 539    0x056e0006,
 540    0x056e09a7,
 541    0x056ee006,
 542    0x056ee9a7,
 543    0x056fc006,
 544    0x056fc9a7,
 545    0x0570a006,
 546    0x0570a9a7,
 547    0x05718006,
 548    0x057189a7,
 549    0x05726006,
 550    0x057269a7,
 551    0x05734006,
 552    0x057349a7,
 553    0x05742006,
 554    0x057429a7,
 555    0x05750006,
 556    0x057509a7,
 557    0x0575e006,
 558    0x0575e9a7,
 559    0x0576c006,
 560    0x0576c9a7,
 561    0x0577a006,
 562    0x0577a9a7,
 563    0x05788006,
 564    0x057889a7,
 565    0x05796006,
 566    0x057969a7,
 567    0x057a4006,
 568    0x057a49a7,
 569    0x057b2006,
 570    0x057b29a7,
 571    0x057c0006,
 572    0x057c09a7,
 573    0x057ce006,
 574    0x057ce9a7,
 575    0x057dc006,
 576    0x057dc9a7,
 577    0x057ea006,
 578    0x057ea9a7,
 579    0x057f8006,
 580    0x057f89a7,
 581    0x05806006,
 582    0x058069a7,
 583    0x05814006,
 584    0x058149a7,
 585    0x05822006,
 586    0x058229a7,
 587    0x05830006,
 588    0x058309a7,
 589    0x0583e006,
 590    0x0583e9a7,
 591    0x0584c006,
 592    0x0584c9a7,
 593    0x0585a006,
 594    0x0585a9a7,
 595    0x05868006,
 596    0x058689a7,
 597    0x05876006,
 598    0x058769a7,
 599    0x05884006,
 600    0x058849a7,
 601    0x05892006,
 602    0x058929a7,
 603    0x058a0006,
 604    0x058a09a7,
 605    0x058ae006,
 606    0x058ae9a7,
 607    0x058bc006,
 608    0x058bc9a7,
 609    0x058ca006,
 610    0x058ca9a7,
 611    0x058d8006,
 612    0x058d89a7,
 613    0x058e6006,
 614    0x058e69a7,
 615    0x058f4006,
 616    0x058f49a7,
 617    0x05902006,
 618    0x059029a7,
 619    0x05910006,
 620    0x059109a7,
 621    0x0591e006,
 622    0x0591e9a7,
 623    0x0592c006,
 624    0x0592c9a7,
 625    0x0593a006,
 626    0x0593a9a7,
 627    0x05948006,
 628    0x059489a7,
 629    0x05956006,
 630    0x059569a7,
 631    0x05964006,
 632    0x059649a7,
 633    0x05972006,
 634    0x059729a7,
 635    0x05980006,
 636    0x059809a7,
 637    0x0598e006,
 638    0x0598e9a7,
 639    0x0599c006,
 640    0x0599c9a7,
 641    0x059aa006,
 642    0x059aa9a7,
 643    0x059b8006,
 644    0x059b89a7,
 645    0x059c6006,
 646    0x059c69a7,
 647    0x059d4006,
 648    0x059d49a7,
 649    0x059e2006,
 650    0x059e29a7,
 651    0x059f0006,
 652    0x059f09a7,
 653    0x059fe006,
 654    0x059fe9a7,
 655    0x05a0c006,
 656    0x05a0c9a7,
 657    0x05a1a006,
 658    0x05a1a9a7,
 659    0x05a28006,
 660    0x05a289a7,
 661    0x05a36006,
 662    0x05a369a7,
 663    0x05a44006,
 664    0x05a449a7,
 665    0x05a52006,
 666    0x05a529a7,
 667    0x05a60006,
 668    0x05a609a7,
 669    0x05a6e006,
 670    0x05a6e9a7,
 671    0x05a7c006,
 672    0x05a7c9a7,
 673    0x05a8a006,
 674    0x05a8a9a7,
 675    0x05a98006,
 676    0x05a989a7,
 677    0x05aa6006,
 678    0x05aa69a7,
 679    0x05ab4006,
 680    0x05ab49a7,
 681    0x05ac2006,
 682    0x05ac29a7,
 683    0x05ad0006,
 684    0x05ad09a7,
 685    0x05ade006,
 686    0x05ade9a7,
 687    0x05aec006,
 688    0x05aec9a7,
 689    0x05afa006,
 690    0x05afa9a7,
 691    0x05b08006,
 692    0x05b089a7,
 693    0x05b16006,
 694    0x05b169a7,
 695    0x05b24006,
 696    0x05b249a7,
 697    0x05b32006,
 698    0x05b329a7,
 699    0x05b40006,
 700    0x05b409a7,
 701    0x05b4e006,
 702    0x05b4e9a7,
 703    0x05b5c006,
 704    0x05b5c9a7,
 705    0x05b6a006,
 706    0x05b6a9a7,
 707    0x05b78006,
 708    0x05b789a7,
 709    0x05b86006,
 710    0x05b869a7,
 711    0x05b94006,
 712    0x05b949a7,
 713    0x05ba2006,
 714    0x05ba29a7,
 715    0x05bb0006,
 716    0x05bb09a7,
 717    0x05bbe006,
 718    0x05bbe9a7,
 719    0x05bcc006,
 720    0x05bcc9a7,
 721    0x05bda006,
 722    0x05bda9a7,
 723    0x05be8006,
 724    0x05be89a7,
 725    0x05bf6006,
 726    0x05bf69a7,
 727    0x05c04006,
 728    0x05c049a7,
 729    0x05c12006,
 730    0x05c129a7,
 731    0x05c20006,
 732    0x05c209a7,
 733    0x05c2e006,
 734    0x05c2e9a7,
 735    0x05c3c006,
 736    0x05c3c9a7,
 737    0x05c4a006,
 738    0x05c4a9a7,
 739    0x05c58006,
 740    0x05c589a7,
 741    0x05c66006,
 742    0x05c669a7,
 743    0x05c74006,
 744    0x05c749a7,
 745    0x05c82006,
 746    0x05c829a7,
 747    0x05c90006,
 748    0x05c909a7,
 749    0x05c9e006,
 750    0x05c9e9a7,
 751    0x05cac006,
 752    0x05cac9a7,
 753    0x05cba006,
 754    0x05cba9a7,
 755    0x05cc8006,
 756    0x05cc89a7,
 757    0x05cd6006,
 758    0x05cd69a7,
 759    0x05ce4006,
 760    0x05ce49a7,
 761    0x05cf2006,
 762    0x05cf29a7,
 763    0x05d00006,
 764    0x05d009a7,
 765    0x05d0e006,
 766    0x05d0e9a7,
 767    0x05d1c006,
 768    0x05d1c9a7,
 769    0x05d2a006,
 770    0x05d2a9a7,
 771    0x05d38006,
 772    0x05d389a7,
 773    0x05d46006,
 774    0x05d469a7,
 775    0x05d54006,
 776    0x05d549a7,
 777    0x05d62006,
 778    0x05d629a7,
 779    0x05d70006,
 780    0x05d709a7,
 781    0x05d7e006,
 782    0x05d7e9a7,
 783    0x05d8c006,
 784    0x05d8c9a7,
 785    0x05d9a006,
 786    0x05d9a9a7,
 787    0x05da8006,
 788    0x05da89a7,
 789    0x05db6006,
 790    0x05db69a7,
 791    0x05dc4006,
 792    0x05dc49a7,
 793    0x05dd2006,
 794    0x05dd29a7,
 795    0x05de0006,
 796    0x05de09a7,
 797    0x05dee006,
 798    0x05dee9a7,
 799    0x05dfc006,
 800    0x05dfc9a7,
 801    0x05e0a006,
 802    0x05e0a9a7,
 803    0x05e18006,
 804    0x05e189a7,
 805    0x05e26006,
 806    0x05e269a7,
 807    0x05e34006,
 808    0x05e349a7,
 809    0x05e42006,
 810    0x05e429a7,
 811    0x05e50006,
 812    0x05e509a7,
 813    0x05e5e006,
 814    0x05e5e9a7,
 815    0x05e6c006,
 816    0x05e6c9a7,
 817    0x05e7a006,
 818    0x05e7a9a7,
 819    0x05e88006,
 820    0x05e889a7,
 821    0x05e96006,
 822    0x05e969a7,
 823    0x05ea4006,
 824    0x05ea49a7,
 825    0x05eb2006,
 826    0x05eb29a7,
 827    0x05ec0006,
 828    0x05ec09a7,
 829    0x05ece006,
 830    0x05ece9a7,
 831    0x05edc006,
 832    0x05edc9a7,
 833    0x05eea006,
 834    0x05eea9a7,
 835    0x05ef8006,
 836    0x05ef89a7,
 837    0x05f06006,
 838    0x05f069a7,
 839    0x05f14006,
 840    0x05f149a7,
 841    0x05f22006,
 842    0x05f229a7,
 843    0x05f30006,
 844    0x05f309a7,
 845    0x05f3e006,
 846    0x05f3e9a7,
 847    0x05f4c006,
 848    0x05f4c9a7,
 849    0x05f5a006,
 850    0x05f5a9a7,
 851    0x05f68006,
 852    0x05f689a7,
 853    0x05f76006,
 854    0x05f769a7,
 855    0x05f84006,
 856    0x05f849a7,
 857    0x05f92006,
 858    0x05f929a7,
 859    0x05fa0006,
 860    0x05fa09a7,
 861    0x05fae006,
 862    0x05fae9a7,
 863    0x05fbc006,
 864    0x05fbc9a7,
 865    0x05fca006,
 866    0x05fca9a7,
 867    0x05fd8006,
 868    0x05fd89a7,
 869    0x05fe6006,
 870    0x05fe69a7,
 871    0x05ff4006,
 872    0x05ff49a7,
 873    0x06002006,
 874    0x060029a7,
 875    0x06010006,
 876    0x060109a7,
 877    0x0601e006,
 878    0x0601e9a7,
 879    0x0602c006,
 880    0x0602c9a7,
 881    0x0603a006,
 882    0x0603a9a7,
 883    0x06048006,
 884    0x060489a7,
 885    0x06056006,
 886    0x060569a7,
 887    0x06064006,
 888    0x060649a7,
 889    0x06072006,
 890    0x060729a7,
 891    0x06080006,
 892    0x060809a7,
 893    0x0608e006,
 894    0x0608e9a7,
 895    0x0609c006,
 896    0x0609c9a7,
 897    0x060aa006,
 898    0x060aa9a7,
 899    0x060b8006,
 900    0x060b89a7,
 901    0x060c6006,
 902    0x060c69a7,
 903    0x060d4006,
 904    0x060d49a7,
 905    0x060e2006,
 906    0x060e29a7,
 907    0x060f0006,
 908    0x060f09a7,
 909    0x060fe006,
 910    0x060fe9a7,
 911    0x0610c006,
 912    0x0610c9a7,
 913    0x0611a006,
 914    0x0611a9a7,
 915    0x06128006,
 916    0x061289a7,
 917    0x06136006,
 918    0x061369a7,
 919    0x06144006,
 920    0x061449a7,
 921    0x06152006,
 922    0x061529a7,
 923    0x06160006,
 924    0x061609a7,
 925    0x0616e006,
 926    0x0616e9a7,
 927    0x0617c006,
 928    0x0617c9a7,
 929    0x0618a006,
 930    0x0618a9a7,
 931    0x06198006,
 932    0x061989a7,
 933    0x061a6006,
 934    0x061a69a7,
 935    0x061b4006,
 936    0x061b49a7,
 937    0x061c2006,
 938    0x061c29a7,
 939    0x061d0006,
 940    0x061d09a7,
 941    0x061de006,
 942    0x061de9a7,
 943    0x061ec006,
 944    0x061ec9a7,
 945    0x061fa006,
 946    0x061fa9a7,
 947    0x06208006,
 948    0x062089a7,
 949    0x06216006,
 950    0x062169a7,
 951    0x06224006,
 952    0x062249a7,
 953    0x06232006,
 954    0x062329a7,
 955    0x06240006,
 956    0x062409a7,
 957    0x0624e006,
 958    0x0624e9a7,
 959    0x0625c006,
 960    0x0625c9a7,
 961    0x0626a006,
 962    0x0626a9a7,
 963    0x06278006,
 964    0x062789a7,
 965    0x06286006,
 966    0x062869a7,
 967    0x06294006,
 968    0x062949a7,
 969    0x062a2006,
 970    0x062a29a7,
 971    0x062b0006,
 972    0x062b09a7,
 973    0x062be006,
 974    0x062be9a7,
 975    0x062cc006,
 976    0x062cc9a7,
 977    0x062da006,
 978    0x062da9a7,
 979    0x062e8006,
 980    0x062e89a7,
 981    0x062f6006,
 982    0x062f69a7,
 983    0x06304006,
 984    0x063049a7,
 985    0x06312006,
 986    0x063129a7,
 987    0x06320006,
 988    0x063209a7,
 989    0x0632e006,
 990    0x0632e9a7,
 991    0x0633c006,
 992    0x0633c9a7,
 993    0x0634a006,
 994    0x0634a9a7,
 995    0x06358006,
 996    0x063589a7,
 997    0x06366006,
 998    0x063669a7,
 999    0x06374006,
1000    0x063749a7,
1001    0x06382006,
1002    0x063829a7,
1003    0x06390006,
1004    0x063909a7,
1005    0x0639e006,
1006    0x0639e9a7,
1007    0x063ac006,
1008    0x063ac9a7,
1009    0x063ba006,
1010    0x063ba9a7,
1011    0x063c8006,
1012    0x063c89a7,
1013    0x063d6006,
1014    0x063d69a7,
1015    0x063e4006,
1016    0x063e49a7,
1017    0x063f2006,
1018    0x063f29a7,
1019    0x06400006,
1020    0x064009a7,
1021    0x0640e006,
1022    0x0640e9a7,
1023    0x0641c006,
1024    0x0641c9a7,
1025    0x0642a006,
1026    0x0642a9a7,
1027    0x06438006,
1028    0x064389a7,
1029    0x06446006,
1030    0x064469a7,
1031    0x06454006,
1032    0x064549a7,
1033    0x06462006,
1034    0x064629a7,
1035    0x06470006,
1036    0x064709a7,
1037    0x0647e006,
1038    0x0647e9a7,
1039    0x0648c006,
1040    0x0648c9a7,
1041    0x0649a006,
1042    0x0649a9a7,
1043    0x064a8006,
1044    0x064a89a7,
1045    0x064b6006,
1046    0x064b69a7,
1047    0x064c4006,
1048    0x064c49a7,
1049    0x064d2006,
1050    0x064d29a7,
1051    0x064e0006,
1052    0x064e09a7,
1053    0x064ee006,
1054    0x064ee9a7,
1055    0x064fc006,
1056    0x064fc9a7,
1057    0x0650a006,
1058    0x0650a9a7,
1059    0x06518006,
1060    0x065189a7,
1061    0x06526006,
1062    0x065269a7,
1063    0x06534006,
1064    0x065349a7,
1065    0x06542006,
1066    0x065429a7,
1067    0x06550006,
1068    0x065509a7,
1069    0x0655e006,
1070    0x0655e9a7,
1071    0x0656c006,
1072    0x0656c9a7,
1073    0x0657a006,
1074    0x0657a9a7,
1075    0x06588006,
1076    0x065889a7,
1077    0x06596006,
1078    0x065969a7,
1079    0x065a4006,
1080    0x065a49a7,
1081    0x065b2006,
1082    0x065b29a7,
1083    0x065c0006,
1084    0x065c09a7,
1085    0x065ce006,
1086    0x065ce9a7,
1087    0x065dc006,
1088    0x065dc9a7,
1089    0x065ea006,
1090    0x065ea9a7,
1091    0x065f8006,
1092    0x065f89a7,
1093    0x06606006,
1094    0x066069a7,
1095    0x06614006,
1096    0x066149a7,
1097    0x06622006,
1098    0x066229a7,
1099    0x06630006,
1100    0x066309a7,
1101    0x0663e006,
1102    0x0663e9a7,
1103    0x0664c006,
1104    0x0664c9a7,
1105    0x0665a006,
1106    0x0665a9a7,
1107    0x06668006,
1108    0x066689a7,
1109    0x06676006,
1110    0x066769a7,
1111    0x06684006,
1112    0x066849a7,
1113    0x06692006,
1114    0x066929a7,
1115    0x066a0006,
1116    0x066a09a7,
1117    0x066ae006,
1118    0x066ae9a7,
1119    0x066bc006,
1120    0x066bc9a7,
1121    0x066ca006,
1122    0x066ca9a7,
1123    0x066d8006,
1124    0x066d89a7,
1125    0x066e6006,
1126    0x066e69a7,
1127    0x066f4006,
1128    0x066f49a7,
1129    0x06702006,
1130    0x067029a7,
1131    0x06710006,
1132    0x067109a7,
1133    0x0671e006,
1134    0x0671e9a7,
1135    0x0672c006,
1136    0x0672c9a7,
1137    0x0673a006,
1138    0x0673a9a7,
1139    0x06748006,
1140    0x067489a7,
1141    0x06756006,
1142    0x067569a7,
1143    0x06764006,
1144    0x067649a7,
1145    0x06772006,
1146    0x067729a7,
1147    0x06780006,
1148    0x067809a7,
1149    0x0678e006,
1150    0x0678e9a7,
1151    0x0679c006,
1152    0x0679c9a7,
1153    0x067aa006,
1154    0x067aa9a7,
1155    0x067b8006,
1156    0x067b89a7,
1157    0x067c6006,
1158    0x067c69a7,
1159    0x067d4006,
1160    0x067d49a7,
1161    0x067e2006,
1162    0x067e29a7,
1163    0x067f0006,
1164    0x067f09a7,
1165    0x067fe006,
1166    0x067fe9a7,
1167    0x0680c006,
1168    0x0680c9a7,
1169    0x0681a006,
1170    0x0681a9a7,
1171    0x06828006,
1172    0x068289a7,
1173    0x06836006,
1174    0x068369a7,
1175    0x06844006,
1176    0x068449a7,
1177    0x06852006,
1178    0x068529a7,
1179    0x06860006,
1180    0x068609a7,
1181    0x0686e006,
1182    0x0686e9a7,
1183    0x0687c006,
1184    0x0687c9a7,
1185    0x0688a006,
1186    0x0688a9a7,
1187    0x06898006,
1188    0x068989a7,
1189    0x068a6006,
1190    0x068a69a7,
1191    0x068b4006,
1192    0x068b49a7,
1193    0x068c2006,
1194    0x068c29a7,
1195    0x068d0006,
1196    0x068d09a7,
1197    0x068de006,
1198    0x068de9a7,
1199    0x068ec006,
1200    0x068ec9a7,
1201    0x068fa006,
1202    0x068fa9a7,
1203    0x06908006,
1204    0x069089a7,
1205    0x06916006,
1206    0x069169a7,
1207    0x06924006,
1208    0x069249a7,
1209    0x06932006,
1210    0x069329a7,
1211    0x06940006,
1212    0x069409a7,
1213    0x0694e006,
1214    0x0694e9a7,
1215    0x0695c006,
1216    0x0695c9a7,
1217    0x0696a006,
1218    0x0696a9a7,
1219    0x06978006,
1220    0x069789a7,
1221    0x06986006,
1222    0x069869a7,
1223    0x06994006,
1224    0x069949a7,
1225    0x069a2006,
1226    0x069a29a7,
1227    0x069b0006,
1228    0x069b09a7,
1229    0x069be006,
1230    0x069be9a7,
1231    0x069cc006,
1232    0x069cc9a7,
1233    0x069da006,
1234    0x069da9a7,
1235    0x069e8006,
1236    0x069e89a7,
1237    0x069f6006,
1238    0x069f69a7,
1239    0x06a04006,
1240    0x06a049a7,
1241    0x06a12006,
1242    0x06a129a7,
1243    0x06a20006,
1244    0x06a209a7,
1245    0x06a2e006,
1246    0x06a2e9a7,
1247    0x06a3c006,
1248    0x06a3c9a7,
1249    0x06a4a006,
1250    0x06a4a9a7,
1251    0x06a58006,
1252    0x06a589a7,
1253    0x06a66006,
1254    0x06a669a7,
1255    0x06a74006,
1256    0x06a749a7,
1257    0x06a82006,
1258    0x06a829a7,
1259    0x06a90006,
1260    0x06a909a7,
1261    0x06a9e006,
1262    0x06a9e9a7,
1263    0x06aac006,
1264    0x06aac9a7,
1265    0x06aba006,
1266    0x06aba9a7,
1267    0x06ac8006,
1268    0x06ac89a7,
1269    0x06ad6006,
1270    0x06ad69a7,
1271    0x06ae4006,
1272    0x06ae49a7,
1273    0x06af2006,
1274    0x06af29a7,
1275    0x06b00006,
1276    0x06b009a7,
1277    0x06b0e006,
1278    0x06b0e9a7,
1279    0x06b1c006,
1280    0x06b1c9a7,
1281    0x06b2a006,
1282    0x06b2a9a7,
1283    0x06b38006,
1284    0x06b389a7,
1285    0x06b46006,
1286    0x06b469a7,
1287    0x06b54006,
1288    0x06b549a7,
1289    0x06b62006,
1290    0x06b629a7,
1291    0x06b70006,
1292    0x06b709a7,
1293    0x06b7e006,
1294    0x06b7e9a7,
1295    0x06b8c006,
1296    0x06b8c9a7,
1297    0x06b9a006,
1298    0x06b9a9a7,
1299    0x06ba8006,
1300    0x06ba89a7,
1301    0x06bb6006,
1302    0x06bb69a7,
1303    0x06bc4006,
1304    0x06bc49a7,
1305    0x06bd816c,
1306    0x06be5b0b,
1307    0x07d8f002,
1308    0x07f000f2,
1309    0x07f100f2,
1310    0x07f7f801,
1311    0x07fcf012,
1312    0x07ff80b1,
1313    0x080fe802,
1314    0x08170002,
1315    0x081bb042,
1316    0x08500822,
1317    0x08502812,
1318    0x08506032,
1319    0x0851c022,
1320    0x0851f802,
1321    0x08572812,
1322    0x08692032,
1323    0x086b4842,
1324    0x08755812,
1325    0x0877e032,
1326    0x087a30a2,
1327    0x087c1032,
1328    0x0880000a,
1329    0x08800802,
1330    0x0880100a,
1331    0x0881c0e2,
1332    0x08838002,
1333    0x08839812,
1334    0x0883f822,
1335    0x0884100a,
1336    0x0885802a,
1337    0x08859832,
1338    0x0885b81a,
1339    0x0885c812,
1340    0x0885e808,
1341    0x08861002,
1342    0x08866808,
1343    0x08880022,
1344    0x08893842,
1345    0x0889600a,
1346    0x08896872,
1347    0x088a281a,
1348    0x088b9802,
1349    0x088c0012,
1350    0x088c100a,
1351    0x088d982a,
1352    0x088db082,
1353    0x088df80a,
1354    0x088e0002,
1355    0x088e1018,
1356    0x088e4832,
1357    0x088e700a,
1358    0x088e7802,
1359    0x0891602a,
1360    0x08917822,
1361    0x0891901a,
1362    0x0891a032,
1363    0x0891f002,
1364    0x08920802,
1365    0x0896f802,
1366    0x0897002a,
1367    0x08971872,
1368    0x08980012,
1369    0x0898101a,
1370    0x0899d812,
1371    0x0899f002,
1372    0x0899f80a,
1373    0x089a0002,
1374    0x089a083a,
1375    0x089a381a,
1376    0x089a581a,
1377    0x089a6802,
1378    0x089ab802,
1379    0x089b101a,
1380    0x089b3062,
1381    0x089b8042,
1382    0x089dc002,
1383    0x089dc81a,
1384    0x089dd852,
1385    0x089e1002,
1386    0x089e2802,
1387    0x089e3822,
1388    0x089e500a,
1389    0x089e601a,
1390    0x089e7022,
1391    0x089e8808,
1392    0x089e9002,
1393    0x089f0812,
1394    0x08a1a82a,
1395    0x08a1c072,
1396    0x08a2001a,
1397    0x08a21022,
1398    0x08a2280a,
1399    0x08a23002,
1400    0x08a2f002,
1401    0x08a58002,
1402    0x08a5881a,
1403    0x08a59852,
1404    0x08a5c80a,
1405    0x08a5d002,
1406    0x08a5d81a,
1407    0x08a5e802,
1408    0x08a5f00a,
1409    0x08a5f812,
1410    0x08a6080a,
1411    0x08a61012,
1412    0x08ad7802,
1413    0x08ad801a,
1414    0x08ad9032,
1415    0x08adc03a,
1416    0x08ade012,
1417    0x08adf00a,
1418    0x08adf812,
1419    0x08aee012,
1420    0x08b1802a,
1421    0x08b19872,
1422    0x08b1d81a,
1423    0x08b1e802,
1424    0x08b1f00a,
1425    0x08b1f812,
1426    0x08b55802,
1427    0x08b5600a,
1428    0x08b56802,
1429    0x08b5701a,
1430    0x08b58072,
1431    0x08b8e802,
1432    0x08b8f00a,
1433    0x08b8f802,
1434    0x08b91032,
1435    0x08b9300a,
1436    0x08b93842,
1437    0x08c1602a,
1438    0x08c17882,
1439    0x08c1c00a,
1440    0x08c1c812,
1441    0x08c98002,
1442    0x08c9884a,
1443    0x08c9b81a,
1444    0x08c9d832,
1445    0x08c9f808,
1446    0x08ca000a,
1447    0x08ca0808,
1448    0x08ca100a,
1449    0x08ca1802,
1450    0x08ce882a,
1451    0x08cea032,
1452    0x08ced012,
1453    0x08cee03a,
1454    0x08cf0002,
1455    0x08cf200a,
1456    0x08d00892,
1457    0x08d19852,
1458    0x08d1c80a,
1459    0x08d1d008,
1460    0x08d1d832,
1461    0x08d23802,
1462    0x08d28852,
1463    0x08d2b81a,
1464    0x08d2c822,
1465    0x08d42058,
1466    0x08d450c2,
1467    0x08d4b80a,
1468    0x08d4c012,
1469    0x08e1780a,
1470    0x08e18062,
1471    0x08e1c052,
1472    0x08e1f00a,
1473    0x08e1f802,
1474    0x08e49152,
1475    0x08e5480a,
1476    0x08e55062,
1477    0x08e5880a,
1478    0x08e59012,
1479    0x08e5a00a,
1480    0x08e5a812,
1481    0x08e98852,
1482    0x08e9d002,
1483    0x08e9e012,
1484    0x08e9f862,
1485    0x08ea3008,
1486    0x08ea3802,
1487    0x08ec504a,
1488    0x08ec8012,
1489    0x08ec981a,
1490    0x08eca802,
1491    0x08ecb00a,
1492    0x08ecb802,
1493    0x08f79812,
1494    0x08f7a81a,
1495    0x08f80012,
1496    0x08f81008,
1497    0x08f8180a,
1498    0x08f9a01a,
1499    0x08f9b042,
1500    0x08f9f01a,
1501    0x08fa0022,
1502    0x08fad002,
1503    0x09a180f1,
1504    0x09a20002,
1505    0x09a238e2,
1506    0x0b08f0b2,
1507    0x0b09502a,
1508    0x0b096822,
1509    0x0b578042,
1510    0x0b598062,
1511    0x0b6b180c,
1512    0x0b6b383c,
1513    0x0b7a7802,
1514    0x0b7a8b6a,
1515    0x0b7c7832,
1516    0x0b7f2002,
1517    0x0b7f8012,
1518    0x0de4e812,
1519    0x0de50031,
1520    0x0e7802d2,
1521    0x0e798162,
1522    0x0e8b2842,
1523    0x0e8b6852,
1524    0x0e8b9871,
1525    0x0e8bd872,
1526    0x0e8c2862,
1527    0x0e8d5032,
1528    0x0e921022,
1529    0x0ed00362,
1530    0x0ed1db12,
1531    0x0ed3a802,
1532    0x0ed42002,
1533    0x0ed4d842,
1534    0x0ed508e2,
1535    0x0f000062,
1536    0x0f004102,
1537    0x0f00d862,
1538    0x0f011812,
1539    0x0f013042,
1540    0x0f047802,
1541    0x0f098062,
1542    0x0f157002,
1543    0x0f176032,
1544    0x0f276032,
1545    0x0f2f7012,
1546    0x0f468062,
1547    0x0f4a2062,
1548    0x0f8007f3,
1549    0x0f8407f3,
1550    0x0f886823,
1551    0x0f897803,
1552    0x0f8b6053,
1553    0x0f8bf013,
1554    0x0f8c7003,
1555    0x0f8c8893,
1556    0x0f8d6b83,
1557    0x0f8f3199,
1558    0x0f9008e3,
1559    0x0f90d003,
1560    0x0f917803,
1561    0x0f919083,
1562    0x0f91e033,
1563    0x0f924ff3,
1564    0x0f964ff3,
1565    0x0f9a4ff3,
1566    0x0f9e4b13,
1567    0x0f9fd842,
1568    0x0fa007f3,
1569    0x0fa407f3,
1570    0x0fa803d3,
1571    0x0faa37f3,
1572    0x0fae37f3,
1573    0x0fb23093,
1574    0x0fb407f3,
1575    0x0fbba0b3,
1576    0x0fbeaaa3,
1577    0x0fc06033,
1578    0x0fc24073,
1579    0x0fc2d053,
1580    0x0fc44073,
1581    0x0fc57513,
1582    0x0fc862e3,
1583    0x0fc9e093,
1584    0x0fca3ff3,
1585    0x0fce3ff3,
1586    0x0fd23ff3,
1587    0x0fd63b83,
1588    0x0fe007f3,
1589    0x0fe407f3,
1590    0x0fe807f3,
1591    0x0fec07f3,
1592    0x0ff007f3,
1593    0x0ff407f3,
1594    0x0ff807f3,
1595    0x0ffc07d3,
1596    0x700001f1,
1597    0x700105f2,
1598    0x700407f1,
1599    0x700807f2,
1600    0x700c06f2,
1601    0x700f87f1,
1602    0x701387f1,
1603    0x701787f1,
1604    0x701b87f1,
1605    0x701f87f1,
1606    0x702387f1,
1607    0x702787f1,
1608    0x702b87f1,
1609    0x702f87f1,
1610    0x703387f1,
1611    0x703787f1,
1612    0x703b87f1,
1613    0x703f87f1,
1614    0x704387f1,
1615    0x704787f1,
1616    0x704b87f1,
1617    0x704f87f1,
1618    0x705387f1,
1619    0x705787f1,
1620    0x705b87f1,
1621    0x705f87f1,
1622    0x706387f1,
1623    0x706787f1,
1624    0x706b87f1,
1625    0x706f87f1,
1626    0x707387f1,
1627    0x707787f1,
1628    0x707b87f1,
1629    0x707f80f1};
1630// clang-format on
1631
1632/// Returns the extended grapheme cluster bondary property of a code point.
1633[[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr __property __get_property(const char32_t __code_point) noexcept {
1634  // The algorithm searches for the upper bound of the range and, when found,
1635  // steps back one entry. This algorithm is used since the code point can be
1636  // anywhere in the range. After a lower bound is found the next step is to
1637  // compare whether the code unit is indeed in the range.
1638  //
1639  // Since the entry contains a code unit, size, and property the code point
1640  // being sought needs to be adjusted. Just shifting the code point to the
1641  // proper position doesn't work; suppose an entry has property 0, size 1,
1642  // and lower bound 3. This results in the entry 0x1810.
1643  // When searching for code point 3 it will search for 0x1800, find 0x1810
1644  // and moves to the previous entry. Thus the lower bound value will never
1645  // be found.
1646  // The simple solution is to set the bits belonging to the property and
1647  // size. Then the upper bound for code point 3 will return the entry after
1648  // 0x1810. After moving to the previous entry the algorithm arrives at the
1649  // correct entry.
1650  ptrdiff_t __i = std::ranges::upper_bound(__entries, (__code_point << 11) | 0x7ffu) - __entries;
1651  if (__i == 0)
1652    return __property::__none;
1653
1654  --__i;
1655  uint32_t __upper_bound = (__entries[__i] >> 11) + ((__entries[__i] >> 4) & 0x7f);
1656  if (__code_point <= __upper_bound)
1657    return static_cast<__property>(__entries[__i] & 0xf);
1658
1659  return __property::__none;
1660}
1661
1662} // namespace __extended_grapheme_custer_property_boundary
1663
1664#endif // _LIBCPP_STD_VER >= 20
1665
1666_LIBCPP_END_NAMESPACE_STD
1667
1668#endif // _LIBCPP___FORMAT_EXTENDED_GRAPHEME_CLUSTER_TABLE_H