star-enclosures-2d

Extract enclosures from 2D geometry
git clone git://git.meso-star.fr/star-enclosures-2d.git
Log | Files | Refs | README | LICENSE

test_senc2d_some_segments.c (53205B)


      1 /* Copyright (C) 2018-2021, 2023, 2024 |Méso|Star> (contact@meso-star.com)
      2  *
      3  * This program is free software: you can redistribute it and/or modify
      4  * it under the terms of the GNU General Public License as published by
      5  * the Free Software Foundation, either version 3 of the License, or
      6  * (at your option) any later version.
      7  *
      8  * This program is distributed in the hope that it will be useful,
      9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
     10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
     11  * GNU General Public License for more details.
     12  *
     13  * You should have received a copy of the GNU General Public License
     14  * along with this program. If not, see <http://www.gnu.org/licenses/>. */
     15 
     16 /* This test has been created using the sg2_geometry_dump_as_C_code feature
     17  * of star-geometry-2D. It uses output from test_sg2_some_segments.
     18  * This test is similar to test_senc2d_many_segments that creates a huge
     19  * geometry by program. */
     20 
     21 #include "senc2d.h"
     22 #include "test_senc2d_utils.h"
     23 
     24 #include <rsys/double2.h>
     25 
     26 /* Dump of star-geometry-2D 'some_segments'. */
     27 static const unsigned some_segments_vertices_count = 1056;
     28 static const double some_segments_vertices[2112] =
     29 {
     30    1, 0,
     31    0.999717, 0.0237977,
     32    0.998867, 0.0475819,
     33    0.997452, 0.0713392,
     34    0.995472, 0.095056,
     35    0.992928, 0.118719,
     36    0.989821, 0.142315,
     37    0.986154, 0.16583,
     38    0.981929, 0.189251,
     39    0.977147, 0.212565,
     40    0.971812, 0.235759,
     41    0.965926, 0.258819,
     42    0.959493, 0.281733,
     43    0.952517, 0.304486,
     44    0.945001, 0.327068,
     45    0.93695, 0.349464,
     46    0.928368, 0.371662,
     47    0.91926, 0.39365,
     48    0.909632, 0.415415,
     49    0.899488, 0.436945,
     50    0.888835, 0.458227,
     51    0.877679, 0.479249,
     52    0.866025, 0.5,
     53    0.853881, 0.520468,
     54    0.841254, 0.540641,
     55    0.828149, 0.560508,
     56    0.814576, 0.580057,
     57    0.800541, 0.599278,
     58    0.786053, 0.618159,
     59    0.77112, 0.63669,
     60    0.75575, 0.654861,
     61    0.739951, 0.67266,
     62    0.723734, 0.690079,
     63    0.707107, 0.707107,
     64    0.690079, 0.723734,
     65    0.67266, 0.739951,
     66    0.654861, 0.75575,
     67    0.63669, 0.77112,
     68    0.618159, 0.786053,
     69    0.599278, 0.800541,
     70    0.580057, 0.814576,
     71    0.560508, 0.828149,
     72    0.540641, 0.841254,
     73    0.520468, 0.853881,
     74    0.5, 0.866025,
     75    0.479249, 0.877679,
     76    0.458227, 0.888835,
     77    0.436945, 0.899488,
     78    0.415415, 0.909632,
     79    0.39365, 0.91926,
     80    0.371662, 0.928368,
     81    0.349464, 0.93695,
     82    0.327068, 0.945001,
     83    0.304486, 0.952517,
     84    0.281733, 0.959493,
     85    0.258819, 0.965926,
     86    0.235759, 0.971812,
     87    0.212565, 0.977147,
     88    0.189251, 0.981929,
     89    0.16583, 0.986154,
     90    0.142315, 0.989821,
     91    0.118719, 0.992928,
     92    0.095056, 0.995472,
     93    0.0713392, 0.997452,
     94    0.0475819, 0.998867,
     95    0.0237977, 0.999717,
     96    6.12323e-17, 1,
     97    -0.0237977, 0.999717,
     98    -0.0475819, 0.998867,
     99    -0.0713392, 0.997452,
    100    -0.095056, 0.995472,
    101    -0.118719, 0.992928,
    102    -0.142315, 0.989821,
    103    -0.16583, 0.986154,
    104    -0.189251, 0.981929,
    105    -0.212565, 0.977147,
    106    -0.235759, 0.971812,
    107    -0.258819, 0.965926,
    108    -0.281733, 0.959493,
    109    -0.304486, 0.952517,
    110    -0.327068, 0.945001,
    111    -0.349464, 0.93695,
    112    -0.371662, 0.928368,
    113    -0.39365, 0.91926,
    114    -0.415415, 0.909632,
    115    -0.436945, 0.899488,
    116    -0.458227, 0.888835,
    117    -0.479249, 0.877679,
    118    -0.5, 0.866025,
    119    -0.520468, 0.853881,
    120    -0.540641, 0.841254,
    121    -0.560508, 0.828149,
    122    -0.580057, 0.814576,
    123    -0.599278, 0.800541,
    124    -0.618159, 0.786053,
    125    -0.63669, 0.77112,
    126    -0.654861, 0.75575,
    127    -0.67266, 0.739951,
    128    -0.690079, 0.723734,
    129    -0.707107, 0.707107,
    130    -0.723734, 0.690079,
    131    -0.739951, 0.67266,
    132    -0.75575, 0.654861,
    133    -0.77112, 0.63669,
    134    -0.786053, 0.618159,
    135    -0.800541, 0.599278,
    136    -0.814576, 0.580057,
    137    -0.828149, 0.560508,
    138    -0.841254, 0.540641,
    139    -0.853881, 0.520468,
    140    -0.866025, 0.5,
    141    -0.877679, 0.479249,
    142    -0.888835, 0.458227,
    143    -0.899488, 0.436945,
    144    -0.909632, 0.415415,
    145    -0.91926, 0.39365,
    146    -0.928368, 0.371662,
    147    -0.93695, 0.349464,
    148    -0.945001, 0.327068,
    149    -0.952517, 0.304486,
    150    -0.959493, 0.281733,
    151    -0.965926, 0.258819,
    152    -0.971812, 0.235759,
    153    -0.977147, 0.212565,
    154    -0.981929, 0.189251,
    155    -0.986154, 0.16583,
    156    -0.989821, 0.142315,
    157    -0.992928, 0.118719,
    158    -0.995472, 0.095056,
    159    -0.997452, 0.0713392,
    160    -0.998867, 0.0475819,
    161    -0.999717, 0.0237977,
    162    -1, 1.22465e-16,
    163    -0.999717, -0.0237977,
    164    -0.998867, -0.0475819,
    165    -0.997452, -0.0713392,
    166    -0.995472, -0.095056,
    167    -0.992928, -0.118719,
    168    -0.989821, -0.142315,
    169    -0.986154, -0.16583,
    170    -0.981929, -0.189251,
    171    -0.977147, -0.212565,
    172    -0.971812, -0.235759,
    173    -0.965926, -0.258819,
    174    -0.959493, -0.281733,
    175    -0.952517, -0.304486,
    176    -0.945001, -0.327068,
    177    -0.93695, -0.349464,
    178    -0.928368, -0.371662,
    179    -0.91926, -0.39365,
    180    -0.909632, -0.415415,
    181    -0.899488, -0.436945,
    182    -0.888835, -0.458227,
    183    -0.877679, -0.479249,
    184    -0.866025, -0.5,
    185    -0.853881, -0.520468,
    186    -0.841254, -0.540641,
    187    -0.828149, -0.560508,
    188    -0.814576, -0.580057,
    189    -0.800541, -0.599278,
    190    -0.786053, -0.618159,
    191    -0.77112, -0.63669,
    192    -0.75575, -0.654861,
    193    -0.739951, -0.67266,
    194    -0.723734, -0.690079,
    195    -0.707107, -0.707107,
    196    -0.690079, -0.723734,
    197    -0.67266, -0.739951,
    198    -0.654861, -0.75575,
    199    -0.63669, -0.77112,
    200    -0.618159, -0.786053,
    201    -0.599278, -0.800541,
    202    -0.580057, -0.814576,
    203    -0.560508, -0.828149,
    204    -0.540641, -0.841254,
    205    -0.520468, -0.853881,
    206    -0.5, -0.866025,
    207    -0.479249, -0.877679,
    208    -0.458227, -0.888835,
    209    -0.436945, -0.899488,
    210    -0.415415, -0.909632,
    211    -0.39365, -0.91926,
    212    -0.371662, -0.928368,
    213    -0.349464, -0.93695,
    214    -0.327068, -0.945001,
    215    -0.304486, -0.952517,
    216    -0.281733, -0.959493,
    217    -0.258819, -0.965926,
    218    -0.235759, -0.971812,
    219    -0.212565, -0.977147,
    220    -0.189251, -0.981929,
    221    -0.16583, -0.986154,
    222    -0.142315, -0.989821,
    223    -0.118719, -0.992928,
    224    -0.095056, -0.995472,
    225    -0.0713392, -0.997452,
    226    -0.0475819, -0.998867,
    227    -0.0237977, -0.999717,
    228    -1.83697e-16, -1,
    229    0.0237977, -0.999717,
    230    0.0475819, -0.998867,
    231    0.0713392, -0.997452,
    232    0.095056, -0.995472,
    233    0.118719, -0.992928,
    234    0.142315, -0.989821,
    235    0.16583, -0.986154,
    236    0.189251, -0.981929,
    237    0.212565, -0.977147,
    238    0.235759, -0.971812,
    239    0.258819, -0.965926,
    240    0.281733, -0.959493,
    241    0.304486, -0.952517,
    242    0.327068, -0.945001,
    243    0.349464, -0.93695,
    244    0.371662, -0.928368,
    245    0.39365, -0.91926,
    246    0.415415, -0.909632,
    247    0.436945, -0.899488,
    248    0.458227, -0.888835,
    249    0.479249, -0.877679,
    250    0.5, -0.866025,
    251    0.520468, -0.853881,
    252    0.540641, -0.841254,
    253    0.560508, -0.828149,
    254    0.580057, -0.814576,
    255    0.599278, -0.800541,
    256    0.618159, -0.786053,
    257    0.63669, -0.77112,
    258    0.654861, -0.75575,
    259    0.67266, -0.739951,
    260    0.690079, -0.723734,
    261    0.707107, -0.707107,
    262    0.723734, -0.690079,
    263    0.739951, -0.67266,
    264    0.75575, -0.654861,
    265    0.77112, -0.63669,
    266    0.786053, -0.618159,
    267    0.800541, -0.599278,
    268    0.814576, -0.580057,
    269    0.828149, -0.560508,
    270    0.841254, -0.540641,
    271    0.853881, -0.520468,
    272    0.866025, -0.5,
    273    0.877679, -0.479249,
    274    0.888835, -0.458227,
    275    0.899488, -0.436945,
    276    0.909632, -0.415415,
    277    0.91926, -0.39365,
    278    0.928368, -0.371662,
    279    0.93695, -0.349464,
    280    0.945001, -0.327068,
    281    0.952517, -0.304486,
    282    0.959493, -0.281733,
    283    0.965926, -0.258819,
    284    0.971812, -0.235759,
    285    0.977147, -0.212565,
    286    0.981929, -0.189251,
    287    0.986154, -0.16583,
    288    0.989821, -0.142315,
    289    0.992928, -0.118719,
    290    0.995472, -0.095056,
    291    0.997452, -0.0713392,
    292    0.998867, -0.0475819,
    293    0.999717, -0.0237977,
    294    1, 10,
    295    0.999717, 10.0238,
    296    0.998867, 10.0476,
    297    0.997452, 10.0713,
    298    0.995472, 10.0951,
    299    0.992928, 10.1187,
    300    0.989821, 10.1423,
    301    0.986154, 10.1658,
    302    0.981929, 10.1893,
    303    0.977147, 10.2126,
    304    0.971812, 10.2358,
    305    0.965926, 10.2588,
    306    0.959493, 10.2817,
    307    0.952517, 10.3045,
    308    0.945001, 10.3271,
    309    0.93695, 10.3495,
    310    0.928368, 10.3717,
    311    0.91926, 10.3937,
    312    0.909632, 10.4154,
    313    0.899488, 10.4369,
    314    0.888835, 10.4582,
    315    0.877679, 10.4792,
    316    0.866025, 10.5,
    317    0.853881, 10.5205,
    318    0.841254, 10.5406,
    319    0.828149, 10.5605,
    320    0.814576, 10.5801,
    321    0.800541, 10.5993,
    322    0.786053, 10.6182,
    323    0.77112, 10.6367,
    324    0.75575, 10.6549,
    325    0.739951, 10.6727,
    326    0.723734, 10.6901,
    327    0.707107, 10.7071,
    328    0.690079, 10.7237,
    329    0.67266, 10.74,
    330    0.654861, 10.7557,
    331    0.63669, 10.7711,
    332    0.618159, 10.7861,
    333    0.599278, 10.8005,
    334    0.580057, 10.8146,
    335    0.560508, 10.8281,
    336    0.540641, 10.8413,
    337    0.520468, 10.8539,
    338    0.5, 10.866,
    339    0.479249, 10.8777,
    340    0.458227, 10.8888,
    341    0.436945, 10.8995,
    342    0.415415, 10.9096,
    343    0.39365, 10.9193,
    344    0.371662, 10.9284,
    345    0.349464, 10.9369,
    346    0.327068, 10.945,
    347    0.304486, 10.9525,
    348    0.281733, 10.9595,
    349    0.258819, 10.9659,
    350    0.235759, 10.9718,
    351    0.212565, 10.9771,
    352    0.189251, 10.9819,
    353    0.16583, 10.9862,
    354    0.142315, 10.9898,
    355    0.118719, 10.9929,
    356    0.095056, 10.9955,
    357    0.0713392, 10.9975,
    358    0.0475819, 10.9989,
    359    0.0237977, 10.9997,
    360    6.12323e-17, 11,
    361    -0.0237977, 10.9997,
    362    -0.0475819, 10.9989,
    363    -0.0713392, 10.9975,
    364    -0.095056, 10.9955,
    365    -0.118719, 10.9929,
    366    -0.142315, 10.9898,
    367    -0.16583, 10.9862,
    368    -0.189251, 10.9819,
    369    -0.212565, 10.9771,
    370    -0.235759, 10.9718,
    371    -0.258819, 10.9659,
    372    -0.281733, 10.9595,
    373    -0.304486, 10.9525,
    374    -0.327068, 10.945,
    375    -0.349464, 10.9369,
    376    -0.371662, 10.9284,
    377    -0.39365, 10.9193,
    378    -0.415415, 10.9096,
    379    -0.436945, 10.8995,
    380    -0.458227, 10.8888,
    381    -0.479249, 10.8777,
    382    -0.5, 10.866,
    383    -0.520468, 10.8539,
    384    -0.540641, 10.8413,
    385    -0.560508, 10.8281,
    386    -0.580057, 10.8146,
    387    -0.599278, 10.8005,
    388    -0.618159, 10.7861,
    389    -0.63669, 10.7711,
    390    -0.654861, 10.7557,
    391    -0.67266, 10.74,
    392    -0.690079, 10.7237,
    393    -0.707107, 10.7071,
    394    -0.723734, 10.6901,
    395    -0.739951, 10.6727,
    396    -0.75575, 10.6549,
    397    -0.77112, 10.6367,
    398    -0.786053, 10.6182,
    399    -0.800541, 10.5993,
    400    -0.814576, 10.5801,
    401    -0.828149, 10.5605,
    402    -0.841254, 10.5406,
    403    -0.853881, 10.5205,
    404    -0.866025, 10.5,
    405    -0.877679, 10.4792,
    406    -0.888835, 10.4582,
    407    -0.899488, 10.4369,
    408    -0.909632, 10.4154,
    409    -0.91926, 10.3937,
    410    -0.928368, 10.3717,
    411    -0.93695, 10.3495,
    412    -0.945001, 10.3271,
    413    -0.952517, 10.3045,
    414    -0.959493, 10.2817,
    415    -0.965926, 10.2588,
    416    -0.971812, 10.2358,
    417    -0.977147, 10.2126,
    418    -0.981929, 10.1893,
    419    -0.986154, 10.1658,
    420    -0.989821, 10.1423,
    421    -0.992928, 10.1187,
    422    -0.995472, 10.0951,
    423    -0.997452, 10.0713,
    424    -0.998867, 10.0476,
    425    -0.999717, 10.0238,
    426    -1, 10,
    427    -0.999717, 9.9762,
    428    -0.998867, 9.95242,
    429    -0.997452, 9.92866,
    430    -0.995472, 9.90494,
    431    -0.992928, 9.88128,
    432    -0.989821, 9.85769,
    433    -0.986154, 9.83417,
    434    -0.981929, 9.81075,
    435    -0.977147, 9.78743,
    436    -0.971812, 9.76424,
    437    -0.965926, 9.74118,
    438    -0.959493, 9.71827,
    439    -0.952517, 9.69551,
    440    -0.945001, 9.67293,
    441    -0.93695, 9.65054,
    442    -0.928368, 9.62834,
    443    -0.91926, 9.60635,
    444    -0.909632, 9.58458,
    445    -0.899488, 9.56306,
    446    -0.888835, 9.54177,
    447    -0.877679, 9.52075,
    448    -0.866025, 9.5,
    449    -0.853881, 9.47953,
    450    -0.841254, 9.45936,
    451    -0.828149, 9.43949,
    452    -0.814576, 9.41994,
    453    -0.800541, 9.40072,
    454    -0.786053, 9.38184,
    455    -0.77112, 9.36331,
    456    -0.75575, 9.34514,
    457    -0.739951, 9.32734,
    458    -0.723734, 9.30992,
    459    -0.707107, 9.29289,
    460    -0.690079, 9.27627,
    461    -0.67266, 9.26005,
    462    -0.654861, 9.24425,
    463    -0.63669, 9.22888,
    464    -0.618159, 9.21395,
    465    -0.599278, 9.19946,
    466    -0.580057, 9.18542,
    467    -0.560508, 9.17185,
    468    -0.540641, 9.15875,
    469    -0.520468, 9.14612,
    470    -0.5, 9.13397,
    471    -0.479249, 9.12232,
    472    -0.458227, 9.11116,
    473    -0.436945, 9.10051,
    474    -0.415415, 9.09037,
    475    -0.39365, 9.08074,
    476    -0.371662, 9.07163,
    477    -0.349464, 9.06305,
    478    -0.327068, 9.055,
    479    -0.304486, 9.04748,
    480    -0.281733, 9.04051,
    481    -0.258819, 9.03407,
    482    -0.235759, 9.02819,
    483    -0.212565, 9.02285,
    484    -0.189251, 9.01807,
    485    -0.16583, 9.01385,
    486    -0.142315, 9.01018,
    487    -0.118719, 9.00707,
    488    -0.095056, 9.00453,
    489    -0.0713392, 9.00255,
    490    -0.0475819, 9.00113,
    491    -0.0237977, 9.00028,
    492    -1.83697e-16, 9,
    493    0.0237977, 9.00028,
    494    0.0475819, 9.00113,
    495    0.0713392, 9.00255,
    496    0.095056, 9.00453,
    497    0.118719, 9.00707,
    498    0.142315, 9.01018,
    499    0.16583, 9.01385,
    500    0.189251, 9.01807,
    501    0.212565, 9.02285,
    502    0.235759, 9.02819,
    503    0.258819, 9.03407,
    504    0.281733, 9.04051,
    505    0.304486, 9.04748,
    506    0.327068, 9.055,
    507    0.349464, 9.06305,
    508    0.371662, 9.07163,
    509    0.39365, 9.08074,
    510    0.415415, 9.09037,
    511    0.436945, 9.10051,
    512    0.458227, 9.11116,
    513    0.479249, 9.12232,
    514    0.5, 9.13397,
    515    0.520468, 9.14612,
    516    0.540641, 9.15875,
    517    0.560508, 9.17185,
    518    0.580057, 9.18542,
    519    0.599278, 9.19946,
    520    0.618159, 9.21395,
    521    0.63669, 9.22888,
    522    0.654861, 9.24425,
    523    0.67266, 9.26005,
    524    0.690079, 9.27627,
    525    0.707107, 9.29289,
    526    0.723734, 9.30992,
    527    0.739951, 9.32734,
    528    0.75575, 9.34514,
    529    0.77112, 9.36331,
    530    0.786053, 9.38184,
    531    0.800541, 9.40072,
    532    0.814576, 9.41994,
    533    0.828149, 9.43949,
    534    0.841254, 9.45936,
    535    0.853881, 9.47953,
    536    0.866025, 9.5,
    537    0.877679, 9.52075,
    538    0.888835, 9.54177,
    539    0.899488, 9.56306,
    540    0.909632, 9.58458,
    541    0.91926, 9.60635,
    542    0.928368, 9.62834,
    543    0.93695, 9.65054,
    544    0.945001, 9.67293,
    545    0.952517, 9.69551,
    546    0.959493, 9.71827,
    547    0.965926, 9.74118,
    548    0.971812, 9.76424,
    549    0.977147, 9.78743,
    550    0.981929, 9.81075,
    551    0.986154, 9.83417,
    552    0.989821, 9.85769,
    553    0.992928, 9.88128,
    554    0.995472, 9.90494,
    555    0.997452, 9.92866,
    556    0.998867, 9.95242,
    557    0.999717, 9.9762,
    558    1, 20,
    559    0.999717, 20.0238,
    560    0.998867, 20.0476,
    561    0.997452, 20.0713,
    562    0.995472, 20.0951,
    563    0.992928, 20.1187,
    564    0.989821, 20.1423,
    565    0.986154, 20.1658,
    566    0.981929, 20.1893,
    567    0.977147, 20.2126,
    568    0.971812, 20.2358,
    569    0.965926, 20.2588,
    570    0.959493, 20.2817,
    571    0.952517, 20.3045,
    572    0.945001, 20.3271,
    573    0.93695, 20.3495,
    574    0.928368, 20.3717,
    575    0.91926, 20.3937,
    576    0.909632, 20.4154,
    577    0.899488, 20.4369,
    578    0.888835, 20.4582,
    579    0.877679, 20.4792,
    580    0.866025, 20.5,
    581    0.853881, 20.5205,
    582    0.841254, 20.5406,
    583    0.828149, 20.5605,
    584    0.814576, 20.5801,
    585    0.800541, 20.5993,
    586    0.786053, 20.6182,
    587    0.77112, 20.6367,
    588    0.75575, 20.6549,
    589    0.739951, 20.6727,
    590    0.723734, 20.6901,
    591    0.707107, 20.7071,
    592    0.690079, 20.7237,
    593    0.67266, 20.74,
    594    0.654861, 20.7557,
    595    0.63669, 20.7711,
    596    0.618159, 20.7861,
    597    0.599278, 20.8005,
    598    0.580057, 20.8146,
    599    0.560508, 20.8281,
    600    0.540641, 20.8413,
    601    0.520468, 20.8539,
    602    0.5, 20.866,
    603    0.479249, 20.8777,
    604    0.458227, 20.8888,
    605    0.436945, 20.8995,
    606    0.415415, 20.9096,
    607    0.39365, 20.9193,
    608    0.371662, 20.9284,
    609    0.349464, 20.9369,
    610    0.327068, 20.945,
    611    0.304486, 20.9525,
    612    0.281733, 20.9595,
    613    0.258819, 20.9659,
    614    0.235759, 20.9718,
    615    0.212565, 20.9771,
    616    0.189251, 20.9819,
    617    0.16583, 20.9862,
    618    0.142315, 20.9898,
    619    0.118719, 20.9929,
    620    0.095056, 20.9955,
    621    0.0713392, 20.9975,
    622    0.0475819, 20.9989,
    623    0.0237977, 20.9997,
    624    6.12323e-17, 21,
    625    -0.0237977, 20.9997,
    626    -0.0475819, 20.9989,
    627    -0.0713392, 20.9975,
    628    -0.095056, 20.9955,
    629    -0.118719, 20.9929,
    630    -0.142315, 20.9898,
    631    -0.16583, 20.9862,
    632    -0.189251, 20.9819,
    633    -0.212565, 20.9771,
    634    -0.235759, 20.9718,
    635    -0.258819, 20.9659,
    636    -0.281733, 20.9595,
    637    -0.304486, 20.9525,
    638    -0.327068, 20.945,
    639    -0.349464, 20.9369,
    640    -0.371662, 20.9284,
    641    -0.39365, 20.9193,
    642    -0.415415, 20.9096,
    643    -0.436945, 20.8995,
    644    -0.458227, 20.8888,
    645    -0.479249, 20.8777,
    646    -0.5, 20.866,
    647    -0.520468, 20.8539,
    648    -0.540641, 20.8413,
    649    -0.560508, 20.8281,
    650    -0.580057, 20.8146,
    651    -0.599278, 20.8005,
    652    -0.618159, 20.7861,
    653    -0.63669, 20.7711,
    654    -0.654861, 20.7557,
    655    -0.67266, 20.74,
    656    -0.690079, 20.7237,
    657    -0.707107, 20.7071,
    658    -0.723734, 20.6901,
    659    -0.739951, 20.6727,
    660    -0.75575, 20.6549,
    661    -0.77112, 20.6367,
    662    -0.786053, 20.6182,
    663    -0.800541, 20.5993,
    664    -0.814576, 20.5801,
    665    -0.828149, 20.5605,
    666    -0.841254, 20.5406,
    667    -0.853881, 20.5205,
    668    -0.866025, 20.5,
    669    -0.877679, 20.4792,
    670    -0.888835, 20.4582,
    671    -0.899488, 20.4369,
    672    -0.909632, 20.4154,
    673    -0.91926, 20.3937,
    674    -0.928368, 20.3717,
    675    -0.93695, 20.3495,
    676    -0.945001, 20.3271,
    677    -0.952517, 20.3045,
    678    -0.959493, 20.2817,
    679    -0.965926, 20.2588,
    680    -0.971812, 20.2358,
    681    -0.977147, 20.2126,
    682    -0.981929, 20.1893,
    683    -0.986154, 20.1658,
    684    -0.989821, 20.1423,
    685    -0.992928, 20.1187,
    686    -0.995472, 20.0951,
    687    -0.997452, 20.0713,
    688    -0.998867, 20.0476,
    689    -0.999717, 20.0238,
    690    -1, 20,
    691    -0.999717, 19.9762,
    692    -0.998867, 19.9524,
    693    -0.997452, 19.9287,
    694    -0.995472, 19.9049,
    695    -0.992928, 19.8813,
    696    -0.989821, 19.8577,
    697    -0.986154, 19.8342,
    698    -0.981929, 19.8107,
    699    -0.977147, 19.7874,
    700    -0.971812, 19.7642,
    701    -0.965926, 19.7412,
    702    -0.959493, 19.7183,
    703    -0.952517, 19.6955,
    704    -0.945001, 19.6729,
    705    -0.93695, 19.6505,
    706    -0.928368, 19.6283,
    707    -0.91926, 19.6063,
    708    -0.909632, 19.5846,
    709    -0.899488, 19.5631,
    710    -0.888835, 19.5418,
    711    -0.877679, 19.5208,
    712    -0.866025, 19.5,
    713    -0.853881, 19.4795,
    714    -0.841254, 19.4594,
    715    -0.828149, 19.4395,
    716    -0.814576, 19.4199,
    717    -0.800541, 19.4007,
    718    -0.786053, 19.3818,
    719    -0.77112, 19.3633,
    720    -0.75575, 19.3451,
    721    -0.739951, 19.3273,
    722    -0.723734, 19.3099,
    723    -0.707107, 19.2929,
    724    -0.690079, 19.2763,
    725    -0.67266, 19.26,
    726    -0.654861, 19.2443,
    727    -0.63669, 19.2289,
    728    -0.618159, 19.2139,
    729    -0.599278, 19.1995,
    730    -0.580057, 19.1854,
    731    -0.560508, 19.1719,
    732    -0.540641, 19.1587,
    733    -0.520468, 19.1461,
    734    -0.5, 19.134,
    735    -0.479249, 19.1223,
    736    -0.458227, 19.1112,
    737    -0.436945, 19.1005,
    738    -0.415415, 19.0904,
    739    -0.39365, 19.0807,
    740    -0.371662, 19.0716,
    741    -0.349464, 19.0631,
    742    -0.327068, 19.055,
    743    -0.304486, 19.0475,
    744    -0.281733, 19.0405,
    745    -0.258819, 19.0341,
    746    -0.235759, 19.0282,
    747    -0.212565, 19.0229,
    748    -0.189251, 19.0181,
    749    -0.16583, 19.0138,
    750    -0.142315, 19.0102,
    751    -0.118719, 19.0071,
    752    -0.095056, 19.0045,
    753    -0.0713392, 19.0025,
    754    -0.0475819, 19.0011,
    755    -0.0237977, 19.0003,
    756    -1.83697e-16, 19,
    757    0.0237977, 19.0003,
    758    0.0475819, 19.0011,
    759    0.0713392, 19.0025,
    760    0.095056, 19.0045,
    761    0.118719, 19.0071,
    762    0.142315, 19.0102,
    763    0.16583, 19.0138,
    764    0.189251, 19.0181,
    765    0.212565, 19.0229,
    766    0.235759, 19.0282,
    767    0.258819, 19.0341,
    768    0.281733, 19.0405,
    769    0.304486, 19.0475,
    770    0.327068, 19.055,
    771    0.349464, 19.0631,
    772    0.371662, 19.0716,
    773    0.39365, 19.0807,
    774    0.415415, 19.0904,
    775    0.436945, 19.1005,
    776    0.458227, 19.1112,
    777    0.479249, 19.1223,
    778    0.5, 19.134,
    779    0.520468, 19.1461,
    780    0.540641, 19.1587,
    781    0.560508, 19.1719,
    782    0.580057, 19.1854,
    783    0.599278, 19.1995,
    784    0.618159, 19.2139,
    785    0.63669, 19.2289,
    786    0.654861, 19.2443,
    787    0.67266, 19.26,
    788    0.690079, 19.2763,
    789    0.707107, 19.2929,
    790    0.723734, 19.3099,
    791    0.739951, 19.3273,
    792    0.75575, 19.3451,
    793    0.77112, 19.3633,
    794    0.786053, 19.3818,
    795    0.800541, 19.4007,
    796    0.814576, 19.4199,
    797    0.828149, 19.4395,
    798    0.841254, 19.4594,
    799    0.853881, 19.4795,
    800    0.866025, 19.5,
    801    0.877679, 19.5208,
    802    0.888835, 19.5418,
    803    0.899488, 19.5631,
    804    0.909632, 19.5846,
    805    0.91926, 19.6063,
    806    0.928368, 19.6283,
    807    0.93695, 19.6505,
    808    0.945001, 19.6729,
    809    0.952517, 19.6955,
    810    0.959493, 19.7183,
    811    0.965926, 19.7412,
    812    0.971812, 19.7642,
    813    0.977147, 19.7874,
    814    0.981929, 19.8107,
    815    0.986154, 19.8342,
    816    0.989821, 19.8577,
    817    0.992928, 19.8813,
    818    0.995472, 19.9049,
    819    0.997452, 19.9287,
    820    0.998867, 19.9524,
    821    0.999717, 19.9762,
    822    1, 30,
    823    0.999717, 30.0238,
    824    0.998867, 30.0476,
    825    0.997452, 30.0713,
    826    0.995472, 30.0951,
    827    0.992928, 30.1187,
    828    0.989821, 30.1423,
    829    0.986154, 30.1658,
    830    0.981929, 30.1893,
    831    0.977147, 30.2126,
    832    0.971812, 30.2358,
    833    0.965926, 30.2588,
    834    0.959493, 30.2817,
    835    0.952517, 30.3045,
    836    0.945001, 30.3271,
    837    0.93695, 30.3495,
    838    0.928368, 30.3717,
    839    0.91926, 30.3937,
    840    0.909632, 30.4154,
    841    0.899488, 30.4369,
    842    0.888835, 30.4582,
    843    0.877679, 30.4792,
    844    0.866025, 30.5,
    845    0.853881, 30.5205,
    846    0.841254, 30.5406,
    847    0.828149, 30.5605,
    848    0.814576, 30.5801,
    849    0.800541, 30.5993,
    850    0.786053, 30.6182,
    851    0.77112, 30.6367,
    852    0.75575, 30.6549,
    853    0.739951, 30.6727,
    854    0.723734, 30.6901,
    855    0.707107, 30.7071,
    856    0.690079, 30.7237,
    857    0.67266, 30.74,
    858    0.654861, 30.7557,
    859    0.63669, 30.7711,
    860    0.618159, 30.7861,
    861    0.599278, 30.8005,
    862    0.580057, 30.8146,
    863    0.560508, 30.8281,
    864    0.540641, 30.8413,
    865    0.520468, 30.8539,
    866    0.5, 30.866,
    867    0.479249, 30.8777,
    868    0.458227, 30.8888,
    869    0.436945, 30.8995,
    870    0.415415, 30.9096,
    871    0.39365, 30.9193,
    872    0.371662, 30.9284,
    873    0.349464, 30.9369,
    874    0.327068, 30.945,
    875    0.304486, 30.9525,
    876    0.281733, 30.9595,
    877    0.258819, 30.9659,
    878    0.235759, 30.9718,
    879    0.212565, 30.9771,
    880    0.189251, 30.9819,
    881    0.16583, 30.9862,
    882    0.142315, 30.9898,
    883    0.118719, 30.9929,
    884    0.095056, 30.9955,
    885    0.0713392, 30.9975,
    886    0.0475819, 30.9989,
    887    0.0237977, 30.9997,
    888    6.12323e-17, 31,
    889    -0.0237977, 30.9997,
    890    -0.0475819, 30.9989,
    891    -0.0713392, 30.9975,
    892    -0.095056, 30.9955,
    893    -0.118719, 30.9929,
    894    -0.142315, 30.9898,
    895    -0.16583, 30.9862,
    896    -0.189251, 30.9819,
    897    -0.212565, 30.9771,
    898    -0.235759, 30.9718,
    899    -0.258819, 30.9659,
    900    -0.281733, 30.9595,
    901    -0.304486, 30.9525,
    902    -0.327068, 30.945,
    903    -0.349464, 30.9369,
    904    -0.371662, 30.9284,
    905    -0.39365, 30.9193,
    906    -0.415415, 30.9096,
    907    -0.436945, 30.8995,
    908    -0.458227, 30.8888,
    909    -0.479249, 30.8777,
    910    -0.5, 30.866,
    911    -0.520468, 30.8539,
    912    -0.540641, 30.8413,
    913    -0.560508, 30.8281,
    914    -0.580057, 30.8146,
    915    -0.599278, 30.8005,
    916    -0.618159, 30.7861,
    917    -0.63669, 30.7711,
    918    -0.654861, 30.7557,
    919    -0.67266, 30.74,
    920    -0.690079, 30.7237,
    921    -0.707107, 30.7071,
    922    -0.723734, 30.6901,
    923    -0.739951, 30.6727,
    924    -0.75575, 30.6549,
    925    -0.77112, 30.6367,
    926    -0.786053, 30.6182,
    927    -0.800541, 30.5993,
    928    -0.814576, 30.5801,
    929    -0.828149, 30.5605,
    930    -0.841254, 30.5406,
    931    -0.853881, 30.5205,
    932    -0.866025, 30.5,
    933    -0.877679, 30.4792,
    934    -0.888835, 30.4582,
    935    -0.899488, 30.4369,
    936    -0.909632, 30.4154,
    937    -0.91926, 30.3937,
    938    -0.928368, 30.3717,
    939    -0.93695, 30.3495,
    940    -0.945001, 30.3271,
    941    -0.952517, 30.3045,
    942    -0.959493, 30.2817,
    943    -0.965926, 30.2588,
    944    -0.971812, 30.2358,
    945    -0.977147, 30.2126,
    946    -0.981929, 30.1893,
    947    -0.986154, 30.1658,
    948    -0.989821, 30.1423,
    949    -0.992928, 30.1187,
    950    -0.995472, 30.0951,
    951    -0.997452, 30.0713,
    952    -0.998867, 30.0476,
    953    -0.999717, 30.0238,
    954    -1, 30,
    955    -0.999717, 29.9762,
    956    -0.998867, 29.9524,
    957    -0.997452, 29.9287,
    958    -0.995472, 29.9049,
    959    -0.992928, 29.8813,
    960    -0.989821, 29.8577,
    961    -0.986154, 29.8342,
    962    -0.981929, 29.8107,
    963    -0.977147, 29.7874,
    964    -0.971812, 29.7642,
    965    -0.965926, 29.7412,
    966    -0.959493, 29.7183,
    967    -0.952517, 29.6955,
    968    -0.945001, 29.6729,
    969    -0.93695, 29.6505,
    970    -0.928368, 29.6283,
    971    -0.91926, 29.6063,
    972    -0.909632, 29.5846,
    973    -0.899488, 29.5631,
    974    -0.888835, 29.5418,
    975    -0.877679, 29.5208,
    976    -0.866025, 29.5,
    977    -0.853881, 29.4795,
    978    -0.841254, 29.4594,
    979    -0.828149, 29.4395,
    980    -0.814576, 29.4199,
    981    -0.800541, 29.4007,
    982    -0.786053, 29.3818,
    983    -0.77112, 29.3633,
    984    -0.75575, 29.3451,
    985    -0.739951, 29.3273,
    986    -0.723734, 29.3099,
    987    -0.707107, 29.2929,
    988    -0.690079, 29.2763,
    989    -0.67266, 29.26,
    990    -0.654861, 29.2443,
    991    -0.63669, 29.2289,
    992    -0.618159, 29.2139,
    993    -0.599278, 29.1995,
    994    -0.580057, 29.1854,
    995    -0.560508, 29.1719,
    996    -0.540641, 29.1587,
    997    -0.520468, 29.1461,
    998    -0.5, 29.134,
    999    -0.479249, 29.1223,
   1000    -0.458227, 29.1112,
   1001    -0.436945, 29.1005,
   1002    -0.415415, 29.0904,
   1003    -0.39365, 29.0807,
   1004    -0.371662, 29.0716,
   1005    -0.349464, 29.0631,
   1006    -0.327068, 29.055,
   1007    -0.304486, 29.0475,
   1008    -0.281733, 29.0405,
   1009    -0.258819, 29.0341,
   1010    -0.235759, 29.0282,
   1011    -0.212565, 29.0229,
   1012    -0.189251, 29.0181,
   1013    -0.16583, 29.0138,
   1014    -0.142315, 29.0102,
   1015    -0.118719, 29.0071,
   1016    -0.095056, 29.0045,
   1017    -0.0713392, 29.0025,
   1018    -0.0475819, 29.0011,
   1019    -0.0237977, 29.0003,
   1020    -1.83697e-16, 29,
   1021    0.0237977, 29.0003,
   1022    0.0475819, 29.0011,
   1023    0.0713392, 29.0025,
   1024    0.095056, 29.0045,
   1025    0.118719, 29.0071,
   1026    0.142315, 29.0102,
   1027    0.16583, 29.0138,
   1028    0.189251, 29.0181,
   1029    0.212565, 29.0229,
   1030    0.235759, 29.0282,
   1031    0.258819, 29.0341,
   1032    0.281733, 29.0405,
   1033    0.304486, 29.0475,
   1034    0.327068, 29.055,
   1035    0.349464, 29.0631,
   1036    0.371662, 29.0716,
   1037    0.39365, 29.0807,
   1038    0.415415, 29.0904,
   1039    0.436945, 29.1005,
   1040    0.458227, 29.1112,
   1041    0.479249, 29.1223,
   1042    0.5, 29.134,
   1043    0.520468, 29.1461,
   1044    0.540641, 29.1587,
   1045    0.560508, 29.1719,
   1046    0.580057, 29.1854,
   1047    0.599278, 29.1995,
   1048    0.618159, 29.2139,
   1049    0.63669, 29.2289,
   1050    0.654861, 29.2443,
   1051    0.67266, 29.26,
   1052    0.690079, 29.2763,
   1053    0.707107, 29.2929,
   1054    0.723734, 29.3099,
   1055    0.739951, 29.3273,
   1056    0.75575, 29.3451,
   1057    0.77112, 29.3633,
   1058    0.786053, 29.3818,
   1059    0.800541, 29.4007,
   1060    0.814576, 29.4199,
   1061    0.828149, 29.4395,
   1062    0.841254, 29.4594,
   1063    0.853881, 29.4795,
   1064    0.866025, 29.5,
   1065    0.877679, 29.5208,
   1066    0.888835, 29.5418,
   1067    0.899488, 29.5631,
   1068    0.909632, 29.5846,
   1069    0.91926, 29.6063,
   1070    0.928368, 29.6283,
   1071    0.93695, 29.6505,
   1072    0.945001, 29.6729,
   1073    0.952517, 29.6955,
   1074    0.959493, 29.7183,
   1075    0.965926, 29.7412,
   1076    0.971812, 29.7642,
   1077    0.977147, 29.7874,
   1078    0.981929, 29.8107,
   1079    0.986154, 29.8342,
   1080    0.989821, 29.8577,
   1081    0.992928, 29.8813,
   1082    0.995472, 29.9049,
   1083    0.997452, 29.9287,
   1084    0.998867, 29.9524,
   1085    0.999717, 29.9762
   1086 };
   1087 static const unsigned some_segments_segments_count = 1056;
   1088 static const unsigned some_segments_segments[2112] =
   1089 {
   1090    0, 1,
   1091    1, 2,
   1092    2, 3,
   1093    3, 4,
   1094    4, 5,
   1095    5, 6,
   1096    6, 7,
   1097    7, 8,
   1098    8, 9,
   1099    9, 10,
   1100    10, 11,
   1101    11, 12,
   1102    12, 13,
   1103    13, 14,
   1104    14, 15,
   1105    15, 16,
   1106    16, 17,
   1107    17, 18,
   1108    18, 19,
   1109    19, 20,
   1110    20, 21,
   1111    21, 22,
   1112    22, 23,
   1113    23, 24,
   1114    24, 25,
   1115    25, 26,
   1116    26, 27,
   1117    27, 28,
   1118    28, 29,
   1119    29, 30,
   1120    30, 31,
   1121    31, 32,
   1122    32, 33,
   1123    33, 34,
   1124    34, 35,
   1125    35, 36,
   1126    36, 37,
   1127    37, 38,
   1128    38, 39,
   1129    39, 40,
   1130    40, 41,
   1131    41, 42,
   1132    42, 43,
   1133    43, 44,
   1134    44, 45,
   1135    45, 46,
   1136    46, 47,
   1137    47, 48,
   1138    48, 49,
   1139    49, 50,
   1140    50, 51,
   1141    51, 52,
   1142    52, 53,
   1143    53, 54,
   1144    54, 55,
   1145    55, 56,
   1146    56, 57,
   1147    57, 58,
   1148    58, 59,
   1149    59, 60,
   1150    60, 61,
   1151    61, 62,
   1152    62, 63,
   1153    63, 64,
   1154    64, 65,
   1155    65, 66,
   1156    66, 67,
   1157    67, 68,
   1158    68, 69,
   1159    69, 70,
   1160    70, 71,
   1161    71, 72,
   1162    72, 73,
   1163    73, 74,
   1164    74, 75,
   1165    75, 76,
   1166    76, 77,
   1167    77, 78,
   1168    78, 79,
   1169    79, 80,
   1170    80, 81,
   1171    81, 82,
   1172    82, 83,
   1173    83, 84,
   1174    84, 85,
   1175    85, 86,
   1176    86, 87,
   1177    87, 88,
   1178    88, 89,
   1179    89, 90,
   1180    90, 91,
   1181    91, 92,
   1182    92, 93,
   1183    93, 94,
   1184    94, 95,
   1185    95, 96,
   1186    96, 97,
   1187    97, 98,
   1188    98, 99,
   1189    99, 100,
   1190    100, 101,
   1191    101, 102,
   1192    102, 103,
   1193    103, 104,
   1194    104, 105,
   1195    105, 106,
   1196    106, 107,
   1197    107, 108,
   1198    108, 109,
   1199    109, 110,
   1200    110, 111,
   1201    111, 112,
   1202    112, 113,
   1203    113, 114,
   1204    114, 115,
   1205    115, 116,
   1206    116, 117,
   1207    117, 118,
   1208    118, 119,
   1209    119, 120,
   1210    120, 121,
   1211    121, 122,
   1212    122, 123,
   1213    123, 124,
   1214    124, 125,
   1215    125, 126,
   1216    126, 127,
   1217    127, 128,
   1218    128, 129,
   1219    129, 130,
   1220    130, 131,
   1221    131, 132,
   1222    132, 133,
   1223    133, 134,
   1224    134, 135,
   1225    135, 136,
   1226    136, 137,
   1227    137, 138,
   1228    138, 139,
   1229    139, 140,
   1230    140, 141,
   1231    141, 142,
   1232    142, 143,
   1233    143, 144,
   1234    144, 145,
   1235    145, 146,
   1236    146, 147,
   1237    147, 148,
   1238    148, 149,
   1239    149, 150,
   1240    150, 151,
   1241    151, 152,
   1242    152, 153,
   1243    153, 154,
   1244    154, 155,
   1245    155, 156,
   1246    156, 157,
   1247    157, 158,
   1248    158, 159,
   1249    159, 160,
   1250    160, 161,
   1251    161, 162,
   1252    162, 163,
   1253    163, 164,
   1254    164, 165,
   1255    165, 166,
   1256    166, 167,
   1257    167, 168,
   1258    168, 169,
   1259    169, 170,
   1260    170, 171,
   1261    171, 172,
   1262    172, 173,
   1263    173, 174,
   1264    174, 175,
   1265    175, 176,
   1266    176, 177,
   1267    177, 178,
   1268    178, 179,
   1269    179, 180,
   1270    180, 181,
   1271    181, 182,
   1272    182, 183,
   1273    183, 184,
   1274    184, 185,
   1275    185, 186,
   1276    186, 187,
   1277    187, 188,
   1278    188, 189,
   1279    189, 190,
   1280    190, 191,
   1281    191, 192,
   1282    192, 193,
   1283    193, 194,
   1284    194, 195,
   1285    195, 196,
   1286    196, 197,
   1287    197, 198,
   1288    198, 199,
   1289    199, 200,
   1290    200, 201,
   1291    201, 202,
   1292    202, 203,
   1293    203, 204,
   1294    204, 205,
   1295    205, 206,
   1296    206, 207,
   1297    207, 208,
   1298    208, 209,
   1299    209, 210,
   1300    210, 211,
   1301    211, 212,
   1302    212, 213,
   1303    213, 214,
   1304    214, 215,
   1305    215, 216,
   1306    216, 217,
   1307    217, 218,
   1308    218, 219,
   1309    219, 220,
   1310    220, 221,
   1311    221, 222,
   1312    222, 223,
   1313    223, 224,
   1314    224, 225,
   1315    225, 226,
   1316    226, 227,
   1317    227, 228,
   1318    228, 229,
   1319    229, 230,
   1320    230, 231,
   1321    231, 232,
   1322    232, 233,
   1323    233, 234,
   1324    234, 235,
   1325    235, 236,
   1326    236, 237,
   1327    237, 238,
   1328    238, 239,
   1329    239, 240,
   1330    240, 241,
   1331    241, 242,
   1332    242, 243,
   1333    243, 244,
   1334    244, 245,
   1335    245, 246,
   1336    246, 247,
   1337    247, 248,
   1338    248, 249,
   1339    249, 250,
   1340    250, 251,
   1341    251, 252,
   1342    252, 253,
   1343    253, 254,
   1344    254, 255,
   1345    255, 256,
   1346    256, 257,
   1347    257, 258,
   1348    258, 259,
   1349    259, 260,
   1350    260, 261,
   1351    261, 262,
   1352    262, 263,
   1353    263, 0,
   1354    264, 265,
   1355    265, 266,
   1356    266, 267,
   1357    267, 268,
   1358    268, 269,
   1359    269, 270,
   1360    270, 271,
   1361    271, 272,
   1362    272, 273,
   1363    273, 274,
   1364    274, 275,
   1365    275, 276,
   1366    276, 277,
   1367    277, 278,
   1368    278, 279,
   1369    279, 280,
   1370    280, 281,
   1371    281, 282,
   1372    282, 283,
   1373    283, 284,
   1374    284, 285,
   1375    285, 286,
   1376    286, 287,
   1377    287, 288,
   1378    288, 289,
   1379    289, 290,
   1380    290, 291,
   1381    291, 292,
   1382    292, 293,
   1383    293, 294,
   1384    294, 295,
   1385    295, 296,
   1386    296, 297,
   1387    297, 298,
   1388    298, 299,
   1389    299, 300,
   1390    300, 301,
   1391    301, 302,
   1392    302, 303,
   1393    303, 304,
   1394    304, 305,
   1395    305, 306,
   1396    306, 307,
   1397    307, 308,
   1398    308, 309,
   1399    309, 310,
   1400    310, 311,
   1401    311, 312,
   1402    312, 313,
   1403    313, 314,
   1404    314, 315,
   1405    315, 316,
   1406    316, 317,
   1407    317, 318,
   1408    318, 319,
   1409    319, 320,
   1410    320, 321,
   1411    321, 322,
   1412    322, 323,
   1413    323, 324,
   1414    324, 325,
   1415    325, 326,
   1416    326, 327,
   1417    327, 328,
   1418    328, 329,
   1419    329, 330,
   1420    330, 331,
   1421    331, 332,
   1422    332, 333,
   1423    333, 334,
   1424    334, 335,
   1425    335, 336,
   1426    336, 337,
   1427    337, 338,
   1428    338, 339,
   1429    339, 340,
   1430    340, 341,
   1431    341, 342,
   1432    342, 343,
   1433    343, 344,
   1434    344, 345,
   1435    345, 346,
   1436    346, 347,
   1437    347, 348,
   1438    348, 349,
   1439    349, 350,
   1440    350, 351,
   1441    351, 352,
   1442    352, 353,
   1443    353, 354,
   1444    354, 355,
   1445    355, 356,
   1446    356, 357,
   1447    357, 358,
   1448    358, 359,
   1449    359, 360,
   1450    360, 361,
   1451    361, 362,
   1452    362, 363,
   1453    363, 364,
   1454    364, 365,
   1455    365, 366,
   1456    366, 367,
   1457    367, 368,
   1458    368, 369,
   1459    369, 370,
   1460    370, 371,
   1461    371, 372,
   1462    372, 373,
   1463    373, 374,
   1464    374, 375,
   1465    375, 376,
   1466    376, 377,
   1467    377, 378,
   1468    378, 379,
   1469    379, 380,
   1470    380, 381,
   1471    381, 382,
   1472    382, 383,
   1473    383, 384,
   1474    384, 385,
   1475    385, 386,
   1476    386, 387,
   1477    387, 388,
   1478    388, 389,
   1479    389, 390,
   1480    390, 391,
   1481    391, 392,
   1482    392, 393,
   1483    393, 394,
   1484    394, 395,
   1485    395, 396,
   1486    396, 397,
   1487    397, 398,
   1488    398, 399,
   1489    399, 400,
   1490    400, 401,
   1491    401, 402,
   1492    402, 403,
   1493    403, 404,
   1494    404, 405,
   1495    405, 406,
   1496    406, 407,
   1497    407, 408,
   1498    408, 409,
   1499    409, 410,
   1500    410, 411,
   1501    411, 412,
   1502    412, 413,
   1503    413, 414,
   1504    414, 415,
   1505    415, 416,
   1506    416, 417,
   1507    417, 418,
   1508    418, 419,
   1509    419, 420,
   1510    420, 421,
   1511    421, 422,
   1512    422, 423,
   1513    423, 424,
   1514    424, 425,
   1515    425, 426,
   1516    426, 427,
   1517    427, 428,
   1518    428, 429,
   1519    429, 430,
   1520    430, 431,
   1521    431, 432,
   1522    432, 433,
   1523    433, 434,
   1524    434, 435,
   1525    435, 436,
   1526    436, 437,
   1527    437, 438,
   1528    438, 439,
   1529    439, 440,
   1530    440, 441,
   1531    441, 442,
   1532    442, 443,
   1533    443, 444,
   1534    444, 445,
   1535    445, 446,
   1536    446, 447,
   1537    447, 448,
   1538    448, 449,
   1539    449, 450,
   1540    450, 451,
   1541    451, 452,
   1542    452, 453,
   1543    453, 454,
   1544    454, 455,
   1545    455, 456,
   1546    456, 457,
   1547    457, 458,
   1548    458, 459,
   1549    459, 460,
   1550    460, 461,
   1551    461, 462,
   1552    462, 463,
   1553    463, 464,
   1554    464, 465,
   1555    465, 466,
   1556    466, 467,
   1557    467, 468,
   1558    468, 469,
   1559    469, 470,
   1560    470, 471,
   1561    471, 472,
   1562    472, 473,
   1563    473, 474,
   1564    474, 475,
   1565    475, 476,
   1566    476, 477,
   1567    477, 478,
   1568    478, 479,
   1569    479, 480,
   1570    480, 481,
   1571    481, 482,
   1572    482, 483,
   1573    483, 484,
   1574    484, 485,
   1575    485, 486,
   1576    486, 487,
   1577    487, 488,
   1578    488, 489,
   1579    489, 490,
   1580    490, 491,
   1581    491, 492,
   1582    492, 493,
   1583    493, 494,
   1584    494, 495,
   1585    495, 496,
   1586    496, 497,
   1587    497, 498,
   1588    498, 499,
   1589    499, 500,
   1590    500, 501,
   1591    501, 502,
   1592    502, 503,
   1593    503, 504,
   1594    504, 505,
   1595    505, 506,
   1596    506, 507,
   1597    507, 508,
   1598    508, 509,
   1599    509, 510,
   1600    510, 511,
   1601    511, 512,
   1602    512, 513,
   1603    513, 514,
   1604    514, 515,
   1605    515, 516,
   1606    516, 517,
   1607    517, 518,
   1608    518, 519,
   1609    519, 520,
   1610    520, 521,
   1611    521, 522,
   1612    522, 523,
   1613    523, 524,
   1614    524, 525,
   1615    525, 526,
   1616    526, 527,
   1617    527, 264,
   1618    528, 529,
   1619    529, 530,
   1620    530, 531,
   1621    531, 532,
   1622    532, 533,
   1623    533, 534,
   1624    534, 535,
   1625    535, 536,
   1626    536, 537,
   1627    537, 538,
   1628    538, 539,
   1629    539, 540,
   1630    540, 541,
   1631    541, 542,
   1632    542, 543,
   1633    543, 544,
   1634    544, 545,
   1635    545, 546,
   1636    546, 547,
   1637    547, 548,
   1638    548, 549,
   1639    549, 550,
   1640    550, 551,
   1641    551, 552,
   1642    552, 553,
   1643    553, 554,
   1644    554, 555,
   1645    555, 556,
   1646    556, 557,
   1647    557, 558,
   1648    558, 559,
   1649    559, 560,
   1650    560, 561,
   1651    561, 562,
   1652    562, 563,
   1653    563, 564,
   1654    564, 565,
   1655    565, 566,
   1656    566, 567,
   1657    567, 568,
   1658    568, 569,
   1659    569, 570,
   1660    570, 571,
   1661    571, 572,
   1662    572, 573,
   1663    573, 574,
   1664    574, 575,
   1665    575, 576,
   1666    576, 577,
   1667    577, 578,
   1668    578, 579,
   1669    579, 580,
   1670    580, 581,
   1671    581, 582,
   1672    582, 583,
   1673    583, 584,
   1674    584, 585,
   1675    585, 586,
   1676    586, 587,
   1677    587, 588,
   1678    588, 589,
   1679    589, 590,
   1680    590, 591,
   1681    591, 592,
   1682    592, 593,
   1683    593, 594,
   1684    594, 595,
   1685    595, 596,
   1686    596, 597,
   1687    597, 598,
   1688    598, 599,
   1689    599, 600,
   1690    600, 601,
   1691    601, 602,
   1692    602, 603,
   1693    603, 604,
   1694    604, 605,
   1695    605, 606,
   1696    606, 607,
   1697    607, 608,
   1698    608, 609,
   1699    609, 610,
   1700    610, 611,
   1701    611, 612,
   1702    612, 613,
   1703    613, 614,
   1704    614, 615,
   1705    615, 616,
   1706    616, 617,
   1707    617, 618,
   1708    618, 619,
   1709    619, 620,
   1710    620, 621,
   1711    621, 622,
   1712    622, 623,
   1713    623, 624,
   1714    624, 625,
   1715    625, 626,
   1716    626, 627,
   1717    627, 628,
   1718    628, 629,
   1719    629, 630,
   1720    630, 631,
   1721    631, 632,
   1722    632, 633,
   1723    633, 634,
   1724    634, 635,
   1725    635, 636,
   1726    636, 637,
   1727    637, 638,
   1728    638, 639,
   1729    639, 640,
   1730    640, 641,
   1731    641, 642,
   1732    642, 643,
   1733    643, 644,
   1734    644, 645,
   1735    645, 646,
   1736    646, 647,
   1737    647, 648,
   1738    648, 649,
   1739    649, 650,
   1740    650, 651,
   1741    651, 652,
   1742    652, 653,
   1743    653, 654,
   1744    654, 655,
   1745    655, 656,
   1746    656, 657,
   1747    657, 658,
   1748    658, 659,
   1749    659, 660,
   1750    660, 661,
   1751    661, 662,
   1752    662, 663,
   1753    663, 664,
   1754    664, 665,
   1755    665, 666,
   1756    666, 667,
   1757    667, 668,
   1758    668, 669,
   1759    669, 670,
   1760    670, 671,
   1761    671, 672,
   1762    672, 673,
   1763    673, 674,
   1764    674, 675,
   1765    675, 676,
   1766    676, 677,
   1767    677, 678,
   1768    678, 679,
   1769    679, 680,
   1770    680, 681,
   1771    681, 682,
   1772    682, 683,
   1773    683, 684,
   1774    684, 685,
   1775    685, 686,
   1776    686, 687,
   1777    687, 688,
   1778    688, 689,
   1779    689, 690,
   1780    690, 691,
   1781    691, 692,
   1782    692, 693,
   1783    693, 694,
   1784    694, 695,
   1785    695, 696,
   1786    696, 697,
   1787    697, 698,
   1788    698, 699,
   1789    699, 700,
   1790    700, 701,
   1791    701, 702,
   1792    702, 703,
   1793    703, 704,
   1794    704, 705,
   1795    705, 706,
   1796    706, 707,
   1797    707, 708,
   1798    708, 709,
   1799    709, 710,
   1800    710, 711,
   1801    711, 712,
   1802    712, 713,
   1803    713, 714,
   1804    714, 715,
   1805    715, 716,
   1806    716, 717,
   1807    717, 718,
   1808    718, 719,
   1809    719, 720,
   1810    720, 721,
   1811    721, 722,
   1812    722, 723,
   1813    723, 724,
   1814    724, 725,
   1815    725, 726,
   1816    726, 727,
   1817    727, 728,
   1818    728, 729,
   1819    729, 730,
   1820    730, 731,
   1821    731, 732,
   1822    732, 733,
   1823    733, 734,
   1824    734, 735,
   1825    735, 736,
   1826    736, 737,
   1827    737, 738,
   1828    738, 739,
   1829    739, 740,
   1830    740, 741,
   1831    741, 742,
   1832    742, 743,
   1833    743, 744,
   1834    744, 745,
   1835    745, 746,
   1836    746, 747,
   1837    747, 748,
   1838    748, 749,
   1839    749, 750,
   1840    750, 751,
   1841    751, 752,
   1842    752, 753,
   1843    753, 754,
   1844    754, 755,
   1845    755, 756,
   1846    756, 757,
   1847    757, 758,
   1848    758, 759,
   1849    759, 760,
   1850    760, 761,
   1851    761, 762,
   1852    762, 763,
   1853    763, 764,
   1854    764, 765,
   1855    765, 766,
   1856    766, 767,
   1857    767, 768,
   1858    768, 769,
   1859    769, 770,
   1860    770, 771,
   1861    771, 772,
   1862    772, 773,
   1863    773, 774,
   1864    774, 775,
   1865    775, 776,
   1866    776, 777,
   1867    777, 778,
   1868    778, 779,
   1869    779, 780,
   1870    780, 781,
   1871    781, 782,
   1872    782, 783,
   1873    783, 784,
   1874    784, 785,
   1875    785, 786,
   1876    786, 787,
   1877    787, 788,
   1878    788, 789,
   1879    789, 790,
   1880    790, 791,
   1881    791, 528,
   1882    792, 793,
   1883    793, 794,
   1884    794, 795,
   1885    795, 796,
   1886    796, 797,
   1887    797, 798,
   1888    798, 799,
   1889    799, 800,
   1890    800, 801,
   1891    801, 802,
   1892    802, 803,
   1893    803, 804,
   1894    804, 805,
   1895    805, 806,
   1896    806, 807,
   1897    807, 808,
   1898    808, 809,
   1899    809, 810,
   1900    810, 811,
   1901    811, 812,
   1902    812, 813,
   1903    813, 814,
   1904    814, 815,
   1905    815, 816,
   1906    816, 817,
   1907    817, 818,
   1908    818, 819,
   1909    819, 820,
   1910    820, 821,
   1911    821, 822,
   1912    822, 823,
   1913    823, 824,
   1914    824, 825,
   1915    825, 826,
   1916    826, 827,
   1917    827, 828,
   1918    828, 829,
   1919    829, 830,
   1920    830, 831,
   1921    831, 832,
   1922    832, 833,
   1923    833, 834,
   1924    834, 835,
   1925    835, 836,
   1926    836, 837,
   1927    837, 838,
   1928    838, 839,
   1929    839, 840,
   1930    840, 841,
   1931    841, 842,
   1932    842, 843,
   1933    843, 844,
   1934    844, 845,
   1935    845, 846,
   1936    846, 847,
   1937    847, 848,
   1938    848, 849,
   1939    849, 850,
   1940    850, 851,
   1941    851, 852,
   1942    852, 853,
   1943    853, 854,
   1944    854, 855,
   1945    855, 856,
   1946    856, 857,
   1947    857, 858,
   1948    858, 859,
   1949    859, 860,
   1950    860, 861,
   1951    861, 862,
   1952    862, 863,
   1953    863, 864,
   1954    864, 865,
   1955    865, 866,
   1956    866, 867,
   1957    867, 868,
   1958    868, 869,
   1959    869, 870,
   1960    870, 871,
   1961    871, 872,
   1962    872, 873,
   1963    873, 874,
   1964    874, 875,
   1965    875, 876,
   1966    876, 877,
   1967    877, 878,
   1968    878, 879,
   1969    879, 880,
   1970    880, 881,
   1971    881, 882,
   1972    882, 883,
   1973    883, 884,
   1974    884, 885,
   1975    885, 886,
   1976    886, 887,
   1977    887, 888,
   1978    888, 889,
   1979    889, 890,
   1980    890, 891,
   1981    891, 892,
   1982    892, 893,
   1983    893, 894,
   1984    894, 895,
   1985    895, 896,
   1986    896, 897,
   1987    897, 898,
   1988    898, 899,
   1989    899, 900,
   1990    900, 901,
   1991    901, 902,
   1992    902, 903,
   1993    903, 904,
   1994    904, 905,
   1995    905, 906,
   1996    906, 907,
   1997    907, 908,
   1998    908, 909,
   1999    909, 910,
   2000    910, 911,
   2001    911, 912,
   2002    912, 913,
   2003    913, 914,
   2004    914, 915,
   2005    915, 916,
   2006    916, 917,
   2007    917, 918,
   2008    918, 919,
   2009    919, 920,
   2010    920, 921,
   2011    921, 922,
   2012    922, 923,
   2013    923, 924,
   2014    924, 925,
   2015    925, 926,
   2016    926, 927,
   2017    927, 928,
   2018    928, 929,
   2019    929, 930,
   2020    930, 931,
   2021    931, 932,
   2022    932, 933,
   2023    933, 934,
   2024    934, 935,
   2025    935, 936,
   2026    936, 937,
   2027    937, 938,
   2028    938, 939,
   2029    939, 940,
   2030    940, 941,
   2031    941, 942,
   2032    942, 943,
   2033    943, 944,
   2034    944, 945,
   2035    945, 946,
   2036    946, 947,
   2037    947, 948,
   2038    948, 949,
   2039    949, 950,
   2040    950, 951,
   2041    951, 952,
   2042    952, 953,
   2043    953, 954,
   2044    954, 955,
   2045    955, 956,
   2046    956, 957,
   2047    957, 958,
   2048    958, 959,
   2049    959, 960,
   2050    960, 961,
   2051    961, 962,
   2052    962, 963,
   2053    963, 964,
   2054    964, 965,
   2055    965, 966,
   2056    966, 967,
   2057    967, 968,
   2058    968, 969,
   2059    969, 970,
   2060    970, 971,
   2061    971, 972,
   2062    972, 973,
   2063    973, 974,
   2064    974, 975,
   2065    975, 976,
   2066    976, 977,
   2067    977, 978,
   2068    978, 979,
   2069    979, 980,
   2070    980, 981,
   2071    981, 982,
   2072    982, 983,
   2073    983, 984,
   2074    984, 985,
   2075    985, 986,
   2076    986, 987,
   2077    987, 988,
   2078    988, 989,
   2079    989, 990,
   2080    990, 991,
   2081    991, 992,
   2082    992, 993,
   2083    993, 994,
   2084    994, 995,
   2085    995, 996,
   2086    996, 997,
   2087    997, 998,
   2088    998, 999,
   2089    999, 1000,
   2090    1000, 1001,
   2091    1001, 1002,
   2092    1002, 1003,
   2093    1003, 1004,
   2094    1004, 1005,
   2095    1005, 1006,
   2096    1006, 1007,
   2097    1007, 1008,
   2098    1008, 1009,
   2099    1009, 1010,
   2100    1010, 1011,
   2101    1011, 1012,
   2102    1012, 1013,
   2103    1013, 1014,
   2104    1014, 1015,
   2105    1015, 1016,
   2106    1016, 1017,
   2107    1017, 1018,
   2108    1018, 1019,
   2109    1019, 1020,
   2110    1020, 1021,
   2111    1021, 1022,
   2112    1022, 1023,
   2113    1023, 1024,
   2114    1024, 1025,
   2115    1025, 1026,
   2116    1026, 1027,
   2117    1027, 1028,
   2118    1028, 1029,
   2119    1029, 1030,
   2120    1030, 1031,
   2121    1031, 1032,
   2122    1032, 1033,
   2123    1033, 1034,
   2124    1034, 1035,
   2125    1035, 1036,
   2126    1036, 1037,
   2127    1037, 1038,
   2128    1038, 1039,
   2129    1039, 1040,
   2130    1040, 1041,
   2131    1041, 1042,
   2132    1042, 1043,
   2133    1043, 1044,
   2134    1044, 1045,
   2135    1045, 1046,
   2136    1046, 1047,
   2137    1047, 1048,
   2138    1048, 1049,
   2139    1049, 1050,
   2140    1050, 1051,
   2141    1051, 1052,
   2142    1052, 1053,
   2143    1053, 1054,
   2144    1054, 1055,
   2145    1055, 792
   2146 };
   2147 static const unsigned some_segments_properties[3168] =
   2148 {
   2149    0, 0, 0,
   2150    0, 0, 0,
   2151    0, 0, 0,
   2152    0, 0, 0,
   2153    0, 0, 0,
   2154    0, 0, 0,
   2155    0, 0, 0,
   2156    0, 0, 0,
   2157    0, 0, 0,
   2158    0, 0, 0,
   2159    0, 0, 0,
   2160    0, 0, 0,
   2161    0, 0, 0,
   2162    0, 0, 0,
   2163    0, 0, 0,
   2164    0, 0, 0,
   2165    0, 0, 0,
   2166    0, 0, 0,
   2167    0, 0, 0,
   2168    0, 0, 0,
   2169    0, 0, 0,
   2170    0, 0, 0,
   2171    0, 0, 0,
   2172    0, 0, 0,
   2173    0, 0, 0,
   2174    0, 0, 0,
   2175    0, 0, 0,
   2176    0, 0, 0,
   2177    0, 0, 0,
   2178    0, 0, 0,
   2179    0, 0, 0,
   2180    0, 0, 0,
   2181    0, 0, 0,
   2182    0, 0, 0,
   2183    0, 0, 0,
   2184    0, 0, 0,
   2185    0, 0, 0,
   2186    0, 0, 0,
   2187    0, 0, 0,
   2188    0, 0, 0,
   2189    0, 0, 0,
   2190    0, 0, 0,
   2191    0, 0, 0,
   2192    0, 0, 0,
   2193    0, 0, 0,
   2194    0, 0, 0,
   2195    0, 0, 0,
   2196    0, 0, 0,
   2197    0, 0, 0,
   2198    0, 0, 0,
   2199    0, 0, 0,
   2200    0, 0, 0,
   2201    0, 0, 0,
   2202    0, 0, 0,
   2203    0, 0, 0,
   2204    0, 0, 0,
   2205    0, 0, 0,
   2206    0, 0, 0,
   2207    0, 0, 0,
   2208    0, 0, 0,
   2209    0, 0, 0,
   2210    0, 0, 0,
   2211    0, 0, 0,
   2212    0, 0, 0,
   2213    0, 0, 0,
   2214    0, 0, 0,
   2215    0, 0, 0,
   2216    0, 0, 0,
   2217    0, 0, 0,
   2218    0, 0, 0,
   2219    0, 0, 0,
   2220    0, 0, 0,
   2221    0, 0, 0,
   2222    0, 0, 0,
   2223    0, 0, 0,
   2224    0, 0, 0,
   2225    0, 0, 0,
   2226    0, 0, 0,
   2227    0, 0, 0,
   2228    0, 0, 0,
   2229    0, 0, 0,
   2230    0, 0, 0,
   2231    0, 0, 0,
   2232    0, 0, 0,
   2233    0, 0, 0,
   2234    0, 0, 0,
   2235    0, 0, 0,
   2236    0, 0, 0,
   2237    0, 0, 0,
   2238    0, 0, 0,
   2239    0, 0, 0,
   2240    0, 0, 0,
   2241    0, 0, 0,
   2242    0, 0, 0,
   2243    0, 0, 0,
   2244    0, 0, 0,
   2245    0, 0, 0,
   2246    0, 0, 0,
   2247    0, 0, 0,
   2248    0, 0, 0,
   2249    0, 0, 0,
   2250    0, 0, 0,
   2251    0, 0, 0,
   2252    0, 0, 0,
   2253    0, 0, 0,
   2254    0, 0, 0,
   2255    0, 0, 0,
   2256    0, 0, 0,
   2257    0, 0, 0,
   2258    0, 0, 0,
   2259    0, 0, 0,
   2260    0, 0, 0,
   2261    0, 0, 0,
   2262    0, 0, 0,
   2263    0, 0, 0,
   2264    0, 0, 0,
   2265    0, 0, 0,
   2266    0, 0, 0,
   2267    0, 0, 0,
   2268    0, 0, 0,
   2269    0, 0, 0,
   2270    0, 0, 0,
   2271    0, 0, 0,
   2272    0, 0, 0,
   2273    0, 0, 0,
   2274    0, 0, 0,
   2275    0, 0, 0,
   2276    0, 0, 0,
   2277    0, 0, 0,
   2278    0, 0, 0,
   2279    0, 0, 0,
   2280    0, 0, 0,
   2281    0, 0, 0,
   2282    0, 0, 0,
   2283    0, 0, 0,
   2284    0, 0, 0,
   2285    0, 0, 0,
   2286    0, 0, 0,
   2287    0, 0, 0,
   2288    0, 0, 0,
   2289    0, 0, 0,
   2290    0, 0, 0,
   2291    0, 0, 0,
   2292    0, 0, 0,
   2293    0, 0, 0,
   2294    0, 0, 0,
   2295    0, 0, 0,
   2296    0, 0, 0,
   2297    0, 0, 0,
   2298    0, 0, 0,
   2299    0, 0, 0,
   2300    0, 0, 0,
   2301    0, 0, 0,
   2302    0, 0, 0,
   2303    0, 0, 0,
   2304    0, 0, 0,
   2305    0, 0, 0,
   2306    0, 0, 0,
   2307    0, 0, 0,
   2308    0, 0, 0,
   2309    0, 0, 0,
   2310    0, 0, 0,
   2311    0, 0, 0,
   2312    0, 0, 0,
   2313    0, 0, 0,
   2314    0, 0, 0,
   2315    0, 0, 0,
   2316    0, 0, 0,
   2317    0, 0, 0,
   2318    0, 0, 0,
   2319    0, 0, 0,
   2320    0, 0, 0,
   2321    0, 0, 0,
   2322    0, 0, 0,
   2323    0, 0, 0,
   2324    0, 0, 0,
   2325    0, 0, 0,
   2326    0, 0, 0,
   2327    0, 0, 0,
   2328    0, 0, 0,
   2329    0, 0, 0,
   2330    0, 0, 0,
   2331    0, 0, 0,
   2332    0, 0, 0,
   2333    0, 0, 0,
   2334    0, 0, 0,
   2335    0, 0, 0,
   2336    0, 0, 0,
   2337    0, 0, 0,
   2338    0, 0, 0,
   2339    0, 0, 0,
   2340    0, 0, 0,
   2341    0, 0, 0,
   2342    0, 0, 0,
   2343    0, 0, 0,
   2344    0, 0, 0,
   2345    0, 0, 0,
   2346    0, 0, 0,
   2347    0, 0, 0,
   2348    0, 0, 0,
   2349    0, 0, 0,
   2350    0, 0, 0,
   2351    0, 0, 0,
   2352    0, 0, 0,
   2353    0, 0, 0,
   2354    0, 0, 0,
   2355    0, 0, 0,
   2356    0, 0, 0,
   2357    0, 0, 0,
   2358    0, 0, 0,
   2359    0, 0, 0,
   2360    0, 0, 0,
   2361    0, 0, 0,
   2362    0, 0, 0,
   2363    0, 0, 0,
   2364    0, 0, 0,
   2365    0, 0, 0,
   2366    0, 0, 0,
   2367    0, 0, 0,
   2368    0, 0, 0,
   2369    0, 0, 0,
   2370    0, 0, 0,
   2371    0, 0, 0,
   2372    0, 0, 0,
   2373    0, 0, 0,
   2374    0, 0, 0,
   2375    0, 0, 0,
   2376    0, 0, 0,
   2377    0, 0, 0,
   2378    0, 0, 0,
   2379    0, 0, 0,
   2380    0, 0, 0,
   2381    0, 0, 0,
   2382    0, 0, 0,
   2383    0, 0, 0,
   2384    0, 0, 0,
   2385    0, 0, 0,
   2386    0, 0, 0,
   2387    0, 0, 0,
   2388    0, 0, 0,
   2389    0, 0, 0,
   2390    0, 0, 0,
   2391    0, 0, 0,
   2392    0, 0, 0,
   2393    0, 0, 0,
   2394    0, 0, 0,
   2395    0, 0, 0,
   2396    0, 0, 0,
   2397    0, 0, 0,
   2398    0, 0, 0,
   2399    0, 0, 0,
   2400    0, 0, 0,
   2401    0, 0, 0,
   2402    0, 0, 0,
   2403    0, 0, 0,
   2404    0, 0, 0,
   2405    0, 0, 0,
   2406    0, 0, 0,
   2407    0, 0, 0,
   2408    0, 0, 0,
   2409    0, 0, 0,
   2410    0, 0, 0,
   2411    0, 0, 0,
   2412    0, 0, 0,
   2413    1, 0, 0,
   2414    1, 0, 0,
   2415    1, 0, 0,
   2416    1, 0, 0,
   2417    1, 0, 0,
   2418    1, 0, 0,
   2419    1, 0, 0,
   2420    1, 0, 0,
   2421    1, 0, 0,
   2422    1, 0, 0,
   2423    1, 0, 0,
   2424    1, 0, 0,
   2425    1, 0, 0,
   2426    1, 0, 0,
   2427    1, 0, 0,
   2428    1, 0, 0,
   2429    1, 0, 0,
   2430    1, 0, 0,
   2431    1, 0, 0,
   2432    1, 0, 0,
   2433    1, 0, 0,
   2434    1, 0, 0,
   2435    1, 0, 0,
   2436    1, 0, 0,
   2437    1, 0, 0,
   2438    1, 0, 0,
   2439    1, 0, 0,
   2440    1, 0, 0,
   2441    1, 0, 0,
   2442    1, 0, 0,
   2443    1, 0, 0,
   2444    1, 0, 0,
   2445    1, 0, 0,
   2446    1, 0, 0,
   2447    1, 0, 0,
   2448    1, 0, 0,
   2449    1, 0, 0,
   2450    1, 0, 0,
   2451    1, 0, 0,
   2452    1, 0, 0,
   2453    1, 0, 0,
   2454    1, 0, 0,
   2455    1, 0, 0,
   2456    1, 0, 0,
   2457    1, 0, 0,
   2458    1, 0, 0,
   2459    1, 0, 0,
   2460    1, 0, 0,
   2461    1, 0, 0,
   2462    1, 0, 0,
   2463    1, 0, 0,
   2464    1, 0, 0,
   2465    1, 0, 0,
   2466    1, 0, 0,
   2467    1, 0, 0,
   2468    1, 0, 0,
   2469    1, 0, 0,
   2470    1, 0, 0,
   2471    1, 0, 0,
   2472    1, 0, 0,
   2473    1, 0, 0,
   2474    1, 0, 0,
   2475    1, 0, 0,
   2476    1, 0, 0,
   2477    1, 0, 0,
   2478    1, 0, 0,
   2479    1, 0, 0,
   2480    1, 0, 0,
   2481    1, 0, 0,
   2482    1, 0, 0,
   2483    1, 0, 0,
   2484    1, 0, 0,
   2485    1, 0, 0,
   2486    1, 0, 0,
   2487    1, 0, 0,
   2488    1, 0, 0,
   2489    1, 0, 0,
   2490    1, 0, 0,
   2491    1, 0, 0,
   2492    1, 0, 0,
   2493    1, 0, 0,
   2494    1, 0, 0,
   2495    1, 0, 0,
   2496    1, 0, 0,
   2497    1, 0, 0,
   2498    1, 0, 0,
   2499    1, 0, 0,
   2500    1, 0, 0,
   2501    1, 0, 0,
   2502    1, 0, 0,
   2503    1, 0, 0,
   2504    1, 0, 0,
   2505    1, 0, 0,
   2506    1, 0, 0,
   2507    1, 0, 0,
   2508    1, 0, 0,
   2509    1, 0, 0,
   2510    1, 0, 0,
   2511    1, 0, 0,
   2512    1, 0, 0,
   2513    1, 0, 0,
   2514    1, 0, 0,
   2515    1, 0, 0,
   2516    1, 0, 0,
   2517    1, 0, 0,
   2518    1, 0, 0,
   2519    1, 0, 0,
   2520    1, 0, 0,
   2521    1, 0, 0,
   2522    1, 0, 0,
   2523    1, 0, 0,
   2524    1, 0, 0,
   2525    1, 0, 0,
   2526    1, 0, 0,
   2527    1, 0, 0,
   2528    1, 0, 0,
   2529    1, 0, 0,
   2530    1, 0, 0,
   2531    1, 0, 0,
   2532    1, 0, 0,
   2533    1, 0, 0,
   2534    1, 0, 0,
   2535    1, 0, 0,
   2536    1, 0, 0,
   2537    1, 0, 0,
   2538    1, 0, 0,
   2539    1, 0, 0,
   2540    1, 0, 0,
   2541    1, 0, 0,
   2542    1, 0, 0,
   2543    1, 0, 0,
   2544    1, 0, 0,
   2545    1, 0, 0,
   2546    1, 0, 0,
   2547    1, 0, 0,
   2548    1, 0, 0,
   2549    1, 0, 0,
   2550    1, 0, 0,
   2551    1, 0, 0,
   2552    1, 0, 0,
   2553    1, 0, 0,
   2554    1, 0, 0,
   2555    1, 0, 0,
   2556    1, 0, 0,
   2557    1, 0, 0,
   2558    1, 0, 0,
   2559    1, 0, 0,
   2560    1, 0, 0,
   2561    1, 0, 0,
   2562    1, 0, 0,
   2563    1, 0, 0,
   2564    1, 0, 0,
   2565    1, 0, 0,
   2566    1, 0, 0,
   2567    1, 0, 0,
   2568    1, 0, 0,
   2569    1, 0, 0,
   2570    1, 0, 0,
   2571    1, 0, 0,
   2572    1, 0, 0,
   2573    1, 0, 0,
   2574    1, 0, 0,
   2575    1, 0, 0,
   2576    1, 0, 0,
   2577    1, 0, 0,
   2578    1, 0, 0,
   2579    1, 0, 0,
   2580    1, 0, 0,
   2581    1, 0, 0,
   2582    1, 0, 0,
   2583    1, 0, 0,
   2584    1, 0, 0,
   2585    1, 0, 0,
   2586    1, 0, 0,
   2587    1, 0, 0,
   2588    1, 0, 0,
   2589    1, 0, 0,
   2590    1, 0, 0,
   2591    1, 0, 0,
   2592    1, 0, 0,
   2593    1, 0, 0,
   2594    1, 0, 0,
   2595    1, 0, 0,
   2596    1, 0, 0,
   2597    1, 0, 0,
   2598    1, 0, 0,
   2599    1, 0, 0,
   2600    1, 0, 0,
   2601    1, 0, 0,
   2602    1, 0, 0,
   2603    1, 0, 0,
   2604    1, 0, 0,
   2605    1, 0, 0,
   2606    1, 0, 0,
   2607    1, 0, 0,
   2608    1, 0, 0,
   2609    1, 0, 0,
   2610    1, 0, 0,
   2611    1, 0, 0,
   2612    1, 0, 0,
   2613    1, 0, 0,
   2614    1, 0, 0,
   2615    1, 0, 0,
   2616    1, 0, 0,
   2617    1, 0, 0,
   2618    1, 0, 0,
   2619    1, 0, 0,
   2620    1, 0, 0,
   2621    1, 0, 0,
   2622    1, 0, 0,
   2623    1, 0, 0,
   2624    1, 0, 0,
   2625    1, 0, 0,
   2626    1, 0, 0,
   2627    1, 0, 0,
   2628    1, 0, 0,
   2629    1, 0, 0,
   2630    1, 0, 0,
   2631    1, 0, 0,
   2632    1, 0, 0,
   2633    1, 0, 0,
   2634    1, 0, 0,
   2635    1, 0, 0,
   2636    1, 0, 0,
   2637    1, 0, 0,
   2638    1, 0, 0,
   2639    1, 0, 0,
   2640    1, 0, 0,
   2641    1, 0, 0,
   2642    1, 0, 0,
   2643    1, 0, 0,
   2644    1, 0, 0,
   2645    1, 0, 0,
   2646    1, 0, 0,
   2647    1, 0, 0,
   2648    1, 0, 0,
   2649    1, 0, 0,
   2650    1, 0, 0,
   2651    1, 0, 0,
   2652    1, 0, 0,
   2653    1, 0, 0,
   2654    1, 0, 0,
   2655    1, 0, 0,
   2656    1, 0, 0,
   2657    1, 0, 0,
   2658    1, 0, 0,
   2659    1, 0, 0,
   2660    1, 0, 0,
   2661    1, 0, 0,
   2662    1, 0, 0,
   2663    1, 0, 0,
   2664    1, 0, 0,
   2665    1, 0, 0,
   2666    1, 0, 0,
   2667    1, 0, 0,
   2668    1, 0, 0,
   2669    1, 0, 0,
   2670    1, 0, 0,
   2671    1, 0, 0,
   2672    1, 0, 0,
   2673    1, 0, 0,
   2674    1, 0, 0,
   2675    1, 0, 0,
   2676    1, 0, 0,
   2677    2, 0, 0,
   2678    2, 0, 0,
   2679    2, 0, 0,
   2680    2, 0, 0,
   2681    2, 0, 0,
   2682    2, 0, 0,
   2683    2, 0, 0,
   2684    2, 0, 0,
   2685    2, 0, 0,
   2686    2, 0, 0,
   2687    2, 0, 0,
   2688    2, 0, 0,
   2689    2, 0, 0,
   2690    2, 0, 0,
   2691    2, 0, 0,
   2692    2, 0, 0,
   2693    2, 0, 0,
   2694    2, 0, 0,
   2695    2, 0, 0,
   2696    2, 0, 0,
   2697    2, 0, 0,
   2698    2, 0, 0,
   2699    2, 0, 0,
   2700    2, 0, 0,
   2701    2, 0, 0,
   2702    2, 0, 0,
   2703    2, 0, 0,
   2704    2, 0, 0,
   2705    2, 0, 0,
   2706    2, 0, 0,
   2707    2, 0, 0,
   2708    2, 0, 0,
   2709    2, 0, 0,
   2710    2, 0, 0,
   2711    2, 0, 0,
   2712    2, 0, 0,
   2713    2, 0, 0,
   2714    2, 0, 0,
   2715    2, 0, 0,
   2716    2, 0, 0,
   2717    2, 0, 0,
   2718    2, 0, 0,
   2719    2, 0, 0,
   2720    2, 0, 0,
   2721    2, 0, 0,
   2722    2, 0, 0,
   2723    2, 0, 0,
   2724    2, 0, 0,
   2725    2, 0, 0,
   2726    2, 0, 0,
   2727    2, 0, 0,
   2728    2, 0, 0,
   2729    2, 0, 0,
   2730    2, 0, 0,
   2731    2, 0, 0,
   2732    2, 0, 0,
   2733    2, 0, 0,
   2734    2, 0, 0,
   2735    2, 0, 0,
   2736    2, 0, 0,
   2737    2, 0, 0,
   2738    2, 0, 0,
   2739    2, 0, 0,
   2740    2, 0, 0,
   2741    2, 0, 0,
   2742    2, 0, 0,
   2743    2, 0, 0,
   2744    2, 0, 0,
   2745    2, 0, 0,
   2746    2, 0, 0,
   2747    2, 0, 0,
   2748    2, 0, 0,
   2749    2, 0, 0,
   2750    2, 0, 0,
   2751    2, 0, 0,
   2752    2, 0, 0,
   2753    2, 0, 0,
   2754    2, 0, 0,
   2755    2, 0, 0,
   2756    2, 0, 0,
   2757    2, 0, 0,
   2758    2, 0, 0,
   2759    2, 0, 0,
   2760    2, 0, 0,
   2761    2, 0, 0,
   2762    2, 0, 0,
   2763    2, 0, 0,
   2764    2, 0, 0,
   2765    2, 0, 0,
   2766    2, 0, 0,
   2767    2, 0, 0,
   2768    2, 0, 0,
   2769    2, 0, 0,
   2770    2, 0, 0,
   2771    2, 0, 0,
   2772    2, 0, 0,
   2773    2, 0, 0,
   2774    2, 0, 0,
   2775    2, 0, 0,
   2776    2, 0, 0,
   2777    2, 0, 0,
   2778    2, 0, 0,
   2779    2, 0, 0,
   2780    2, 0, 0,
   2781    2, 0, 0,
   2782    2, 0, 0,
   2783    2, 0, 0,
   2784    2, 0, 0,
   2785    2, 0, 0,
   2786    2, 0, 0,
   2787    2, 0, 0,
   2788    2, 0, 0,
   2789    2, 0, 0,
   2790    2, 0, 0,
   2791    2, 0, 0,
   2792    2, 0, 0,
   2793    2, 0, 0,
   2794    2, 0, 0,
   2795    2, 0, 0,
   2796    2, 0, 0,
   2797    2, 0, 0,
   2798    2, 0, 0,
   2799    2, 0, 0,
   2800    2, 0, 0,
   2801    2, 0, 0,
   2802    2, 0, 0,
   2803    2, 0, 0,
   2804    2, 0, 0,
   2805    2, 0, 0,
   2806    2, 0, 0,
   2807    2, 0, 0,
   2808    2, 0, 0,
   2809    2, 0, 0,
   2810    2, 0, 0,
   2811    2, 0, 0,
   2812    2, 0, 0,
   2813    2, 0, 0,
   2814    2, 0, 0,
   2815    2, 0, 0,
   2816    2, 0, 0,
   2817    2, 0, 0,
   2818    2, 0, 0,
   2819    2, 0, 0,
   2820    2, 0, 0,
   2821    2, 0, 0,
   2822    2, 0, 0,
   2823    2, 0, 0,
   2824    2, 0, 0,
   2825    2, 0, 0,
   2826    2, 0, 0,
   2827    2, 0, 0,
   2828    2, 0, 0,
   2829    2, 0, 0,
   2830    2, 0, 0,
   2831    2, 0, 0,
   2832    2, 0, 0,
   2833    2, 0, 0,
   2834    2, 0, 0,
   2835    2, 0, 0,
   2836    2, 0, 0,
   2837    2, 0, 0,
   2838    2, 0, 0,
   2839    2, 0, 0,
   2840    2, 0, 0,
   2841    2, 0, 0,
   2842    2, 0, 0,
   2843    2, 0, 0,
   2844    2, 0, 0,
   2845    2, 0, 0,
   2846    2, 0, 0,
   2847    2, 0, 0,
   2848    2, 0, 0,
   2849    2, 0, 0,
   2850    2, 0, 0,
   2851    2, 0, 0,
   2852    2, 0, 0,
   2853    2, 0, 0,
   2854    2, 0, 0,
   2855    2, 0, 0,
   2856    2, 0, 0,
   2857    2, 0, 0,
   2858    2, 0, 0,
   2859    2, 0, 0,
   2860    2, 0, 0,
   2861    2, 0, 0,
   2862    2, 0, 0,
   2863    2, 0, 0,
   2864    2, 0, 0,
   2865    2, 0, 0,
   2866    2, 0, 0,
   2867    2, 0, 0,
   2868    2, 0, 0,
   2869    2, 0, 0,
   2870    2, 0, 0,
   2871    2, 0, 0,
   2872    2, 0, 0,
   2873    2, 0, 0,
   2874    2, 0, 0,
   2875    2, 0, 0,
   2876    2, 0, 0,
   2877    2, 0, 0,
   2878    2, 0, 0,
   2879    2, 0, 0,
   2880    2, 0, 0,
   2881    2, 0, 0,
   2882    2, 0, 0,
   2883    2, 0, 0,
   2884    2, 0, 0,
   2885    2, 0, 0,
   2886    2, 0, 0,
   2887    2, 0, 0,
   2888    2, 0, 0,
   2889    2, 0, 0,
   2890    2, 0, 0,
   2891    2, 0, 0,
   2892    2, 0, 0,
   2893    2, 0, 0,
   2894    2, 0, 0,
   2895    2, 0, 0,
   2896    2, 0, 0,
   2897    2, 0, 0,
   2898    2, 0, 0,
   2899    2, 0, 0,
   2900    2, 0, 0,
   2901    2, 0, 0,
   2902    2, 0, 0,
   2903    2, 0, 0,
   2904    2, 0, 0,
   2905    2, 0, 0,
   2906    2, 0, 0,
   2907    2, 0, 0,
   2908    2, 0, 0,
   2909    2, 0, 0,
   2910    2, 0, 0,
   2911    2, 0, 0,
   2912    2, 0, 0,
   2913    2, 0, 0,
   2914    2, 0, 0,
   2915    2, 0, 0,
   2916    2, 0, 0,
   2917    2, 0, 0,
   2918    2, 0, 0,
   2919    2, 0, 0,
   2920    2, 0, 0,
   2921    2, 0, 0,
   2922    2, 0, 0,
   2923    2, 0, 0,
   2924    2, 0, 0,
   2925    2, 0, 0,
   2926    2, 0, 0,
   2927    2, 0, 0,
   2928    2, 0, 0,
   2929    2, 0, 0,
   2930    2, 0, 0,
   2931    2, 0, 0,
   2932    2, 0, 0,
   2933    2, 0, 0,
   2934    2, 0, 0,
   2935    2, 0, 0,
   2936    2, 0, 0,
   2937    2, 0, 0,
   2938    2, 0, 0,
   2939    2, 0, 0,
   2940    2, 0, 0,
   2941    3, 0, 0,
   2942    3, 0, 0,
   2943    3, 0, 0,
   2944    3, 0, 0,
   2945    3, 0, 0,
   2946    3, 0, 0,
   2947    3, 0, 0,
   2948    3, 0, 0,
   2949    3, 0, 0,
   2950    3, 0, 0,
   2951    3, 0, 0,
   2952    3, 0, 0,
   2953    3, 0, 0,
   2954    3, 0, 0,
   2955    3, 0, 0,
   2956    3, 0, 0,
   2957    3, 0, 0,
   2958    3, 0, 0,
   2959    3, 0, 0,
   2960    3, 0, 0,
   2961    3, 0, 0,
   2962    3, 0, 0,
   2963    3, 0, 0,
   2964    3, 0, 0,
   2965    3, 0, 0,
   2966    3, 0, 0,
   2967    3, 0, 0,
   2968    3, 0, 0,
   2969    3, 0, 0,
   2970    3, 0, 0,
   2971    3, 0, 0,
   2972    3, 0, 0,
   2973    3, 0, 0,
   2974    3, 0, 0,
   2975    3, 0, 0,
   2976    3, 0, 0,
   2977    3, 0, 0,
   2978    3, 0, 0,
   2979    3, 0, 0,
   2980    3, 0, 0,
   2981    3, 0, 0,
   2982    3, 0, 0,
   2983    3, 0, 0,
   2984    3, 0, 0,
   2985    3, 0, 0,
   2986    3, 0, 0,
   2987    3, 0, 0,
   2988    3, 0, 0,
   2989    3, 0, 0,
   2990    3, 0, 0,
   2991    3, 0, 0,
   2992    3, 0, 0,
   2993    3, 0, 0,
   2994    3, 0, 0,
   2995    3, 0, 0,
   2996    3, 0, 0,
   2997    3, 0, 0,
   2998    3, 0, 0,
   2999    3, 0, 0,
   3000    3, 0, 0,
   3001    3, 0, 0,
   3002    3, 0, 0,
   3003    3, 0, 0,
   3004    3, 0, 0,
   3005    3, 0, 0,
   3006    3, 0, 0,
   3007    3, 0, 0,
   3008    3, 0, 0,
   3009    3, 0, 0,
   3010    3, 0, 0,
   3011    3, 0, 0,
   3012    3, 0, 0,
   3013    3, 0, 0,
   3014    3, 0, 0,
   3015    3, 0, 0,
   3016    3, 0, 0,
   3017    3, 0, 0,
   3018    3, 0, 0,
   3019    3, 0, 0,
   3020    3, 0, 0,
   3021    3, 0, 0,
   3022    3, 0, 0,
   3023    3, 0, 0,
   3024    3, 0, 0,
   3025    3, 0, 0,
   3026    3, 0, 0,
   3027    3, 0, 0,
   3028    3, 0, 0,
   3029    3, 0, 0,
   3030    3, 0, 0,
   3031    3, 0, 0,
   3032    3, 0, 0,
   3033    3, 0, 0,
   3034    3, 0, 0,
   3035    3, 0, 0,
   3036    3, 0, 0,
   3037    3, 0, 0,
   3038    3, 0, 0,
   3039    3, 0, 0,
   3040    3, 0, 0,
   3041    3, 0, 0,
   3042    3, 0, 0,
   3043    3, 0, 0,
   3044    3, 0, 0,
   3045    3, 0, 0,
   3046    3, 0, 0,
   3047    3, 0, 0,
   3048    3, 0, 0,
   3049    3, 0, 0,
   3050    3, 0, 0,
   3051    3, 0, 0,
   3052    3, 0, 0,
   3053    3, 0, 0,
   3054    3, 0, 0,
   3055    3, 0, 0,
   3056    3, 0, 0,
   3057    3, 0, 0,
   3058    3, 0, 0,
   3059    3, 0, 0,
   3060    3, 0, 0,
   3061    3, 0, 0,
   3062    3, 0, 0,
   3063    3, 0, 0,
   3064    3, 0, 0,
   3065    3, 0, 0,
   3066    3, 0, 0,
   3067    3, 0, 0,
   3068    3, 0, 0,
   3069    3, 0, 0,
   3070    3, 0, 0,
   3071    3, 0, 0,
   3072    3, 0, 0,
   3073    3, 0, 0,
   3074    3, 0, 0,
   3075    3, 0, 0,
   3076    3, 0, 0,
   3077    3, 0, 0,
   3078    3, 0, 0,
   3079    3, 0, 0,
   3080    3, 0, 0,
   3081    3, 0, 0,
   3082    3, 0, 0,
   3083    3, 0, 0,
   3084    3, 0, 0,
   3085    3, 0, 0,
   3086    3, 0, 0,
   3087    3, 0, 0,
   3088    3, 0, 0,
   3089    3, 0, 0,
   3090    3, 0, 0,
   3091    3, 0, 0,
   3092    3, 0, 0,
   3093    3, 0, 0,
   3094    3, 0, 0,
   3095    3, 0, 0,
   3096    3, 0, 0,
   3097    3, 0, 0,
   3098    3, 0, 0,
   3099    3, 0, 0,
   3100    3, 0, 0,
   3101    3, 0, 0,
   3102    3, 0, 0,
   3103    3, 0, 0,
   3104    3, 0, 0,
   3105    3, 0, 0,
   3106    3, 0, 0,
   3107    3, 0, 0,
   3108    3, 0, 0,
   3109    3, 0, 0,
   3110    3, 0, 0,
   3111    3, 0, 0,
   3112    3, 0, 0,
   3113    3, 0, 0,
   3114    3, 0, 0,
   3115    3, 0, 0,
   3116    3, 0, 0,
   3117    3, 0, 0,
   3118    3, 0, 0,
   3119    3, 0, 0,
   3120    3, 0, 0,
   3121    3, 0, 0,
   3122    3, 0, 0,
   3123    3, 0, 0,
   3124    3, 0, 0,
   3125    3, 0, 0,
   3126    3, 0, 0,
   3127    3, 0, 0,
   3128    3, 0, 0,
   3129    3, 0, 0,
   3130    3, 0, 0,
   3131    3, 0, 0,
   3132    3, 0, 0,
   3133    3, 0, 0,
   3134    3, 0, 0,
   3135    3, 0, 0,
   3136    3, 0, 0,
   3137    3, 0, 0,
   3138    3, 0, 0,
   3139    3, 0, 0,
   3140    3, 0, 0,
   3141    3, 0, 0,
   3142    3, 0, 0,
   3143    3, 0, 0,
   3144    3, 0, 0,
   3145    3, 0, 0,
   3146    3, 0, 0,
   3147    3, 0, 0,
   3148    3, 0, 0,
   3149    3, 0, 0,
   3150    3, 0, 0,
   3151    3, 0, 0,
   3152    3, 0, 0,
   3153    3, 0, 0,
   3154    3, 0, 0,
   3155    3, 0, 0,
   3156    3, 0, 0,
   3157    3, 0, 0,
   3158    3, 0, 0,
   3159    3, 0, 0,
   3160    3, 0, 0,
   3161    3, 0, 0,
   3162    3, 0, 0,
   3163    3, 0, 0,
   3164    3, 0, 0,
   3165    3, 0, 0,
   3166    3, 0, 0,
   3167    3, 0, 0,
   3168    3, 0, 0,
   3169    3, 0, 0,
   3170    3, 0, 0,
   3171    3, 0, 0,
   3172    3, 0, 0,
   3173    3, 0, 0,
   3174    3, 0, 0,
   3175    3, 0, 0,
   3176    3, 0, 0,
   3177    3, 0, 0,
   3178    3, 0, 0,
   3179    3, 0, 0,
   3180    3, 0, 0,
   3181    3, 0, 0,
   3182    3, 0, 0,
   3183    3, 0, 0,
   3184    3, 0, 0,
   3185    3, 0, 0,
   3186    3, 0, 0,
   3187    3, 0, 0,
   3188    3, 0, 0,
   3189    3, 0, 0,
   3190    3, 0, 0,
   3191    3, 0, 0,
   3192    3, 0, 0,
   3193    3, 0, 0,
   3194    3, 0, 0,
   3195    3, 0, 0,
   3196    3, 0, 0,
   3197    3, 0, 0,
   3198    3, 0, 0,
   3199    3, 0, 0,
   3200    3, 0, 0,
   3201    3, 0, 0,
   3202    3, 0, 0,
   3203    3, 0, 0,
   3204    3, 0, 0
   3205 };
   3206 
   3207 #define NB_CIRC 4
   3208 #define CIRC_VRTX_COUNT 264u
   3209 #define CIRC_SEG_COUNT 264u
   3210 
   3211 int
   3212 main(int argc, char** argv)
   3213 {
   3214   struct mem_allocator allocator;
   3215   struct senc2d_device* dev = NULL;
   3216   struct senc2d_scene* scn = NULL;
   3217   struct context ctx = CONTEXT_NULL__;
   3218   unsigned e, count;
   3219   (void)argc, (void)argv;
   3220 
   3221   OK(mem_init_proxy_allocator(&allocator, &mem_default_allocator));
   3222   OK(senc2d_device_create(NULL, &allocator, SENC2D_NTHREADS_DEFAULT, 1, &dev));
   3223 
   3224   /* Create a scene */
   3225   ctx.positions = some_segments_vertices;
   3226   ctx.indices = some_segments_segments;
   3227   ctx.properties = some_segments_properties;
   3228   OK(senc2d_scene_create(dev,
   3229     SENC2D_CONVENTION_NORMAL_FRONT | SENC2D_CONVENTION_NORMAL_INSIDE,
   3230     some_segments_segments_count, get_indices, get_media_from_properties,
   3231     some_segments_vertices_count, get_position, &ctx, &scn));
   3232 
   3233   OK(senc2d_scene_get_vertices_count(scn, &count));
   3234   CHK(count == some_segments_vertices_count);
   3235   CHK(count == NB_CIRC * CIRC_VRTX_COUNT);
   3236   OK(senc2d_scene_get_segments_count(scn, &count));
   3237   CHK(count == some_segments_segments_count);
   3238   CHK(count == NB_CIRC * CIRC_VRTX_COUNT);
   3239 
   3240   OK(senc2d_scene_get_enclosure_count(scn, &count));
   3241   CHK(count == 1 + NB_CIRC);
   3242   FOR_EACH(e, 0, count) {
   3243     struct senc2d_enclosure* enclosure;
   3244     struct senc2d_enclosure_header header;
   3245     OK(senc2d_scene_get_enclosure(scn, e, &enclosure));
   3246     OK(senc2d_enclosure_get_header(enclosure, &header));
   3247     CHK(header.primitives_count ==
   3248       (e ? CIRC_SEG_COUNT : NB_CIRC * CIRC_SEG_COUNT));
   3249     OK(senc2d_enclosure_ref_put(enclosure));
   3250   }
   3251 
   3252   OK(senc2d_scene_ref_put(scn));
   3253   OK(senc2d_device_ref_put(dev));
   3254 
   3255   check_memory_allocator(&allocator);
   3256   mem_shutdown_proxy_allocator(&allocator);
   3257   CHK(mem_allocated_size() == 0);
   3258   return 0;
   3259 }