shape_data.cpp (73229B)
1 // This file is part of Blend2D project <https://blend2d.com> 2 // 3 // See LICENSE.md for license and copyright information 4 // SPDX-License-Identifier: Zlib 5 6 #include "shape_data.h" 7 8 /* 9 // The following code can be used to dump any BLPath to a data compatible with shape data. 10 static void dumpShapeData(const BLPath& p) noexcept { 11 BLString command_string; 12 BLString vector_string; 13 14 BLPathView view = p.view(); 15 size_t size = view.size; 16 const uint8_t* command_data = view.command_data; 17 const BLPoint* vertex_data = view.vertex_data; 18 19 size_t i = 0; 20 while (i < size) { 21 uint8_t cmd = command_data[i]; 22 23 switch (cmd) { 24 case BL_PATH_CMD_MOVE: 25 case BL_PATH_CMD_ON: 26 command_string.append(cmd == BL_PATH_CMD_MOVE ? 'M' : 'L'); 27 28 if (!vector_string.empty()) { 29 vector_string.append(",\n"); 30 } 31 32 vector_string.append_format(" %f, %f", 33 vertex_data[i].x, vertex_data[i].y); 34 35 i += 1; 36 break; 37 38 case BL_PATH_CMD_QUAD: 39 command_string.append('Q'); 40 41 if (!vector_string.empty()) { 42 vector_string.append(",\n"); 43 } 44 45 vector_string.append_format(" %f, %f, %f, %f", 46 vertex_data[i + 0].x, vertex_data[i + 0].y, 47 vertex_data[i + 1].x, vertex_data[i + 1].y); 48 49 i += 2; 50 break; 51 52 case BL_PATH_CMD_CUBIC: 53 if (!vector_string.empty()) { 54 vector_string.append(",\n"); 55 } 56 57 command_string.append('C'); 58 vector_string.append_format(" %f, %f, %f, %f, %f, %f", 59 vertex_data[i + 0].x, vertex_data[i + 0].y, 60 vertex_data[i + 1].x, vertex_data[i + 1].y, 61 vertex_data[i + 2].x, vertex_data[i + 2].y); 62 63 i += 3; 64 break; 65 66 case BL_PATH_CMD_CLOSE: 67 command_string.append("Z"); 68 69 i += 1; 70 break; 71 } 72 } 73 74 BLString data; 75 data.append_format("constexpr char commands[] =\n \"%s\";\n", command_string.data()); 76 data.append_format("constexpr double vertices[] = {\n%s\n};\n", vector_string.data()); 77 78 printf("%s\n", data.data()); 79 } 80 */ 81 82 #define ARRAY_SIZE(X) uint32_t(sizeof(X) / sizeof(X[0])) 83 84 namespace blbench { 85 86 // Public domain. 87 constexpr char butterfly_commands[] = 88 "MCCCCCCLCCCCCCCCCCCCCCCCCCLLCCCCCCCCCCCCCCLLLCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCLCCLCCCCCCCCCCCCCCCCCCCCCCCCCCCCLCCCCCCCCCCCCCCLLCCCCCCCCCCCCCCCCCCCCZ"; 89 90 constexpr double butterfly_vertices[] = { 91 0.996537, 0.064954, 92 0.993752, 0.050263, 0.989116, 0.037814, 0.982760, 0.027953, 93 0.976193, 0.017700, 0.966729, 0.009674, 0.956111, 0.005354, 94 0.947852, 0.001955, 0.938374, 0.000230, 0.927941, 0.000230, 95 0.924588, 0.000230, 0.921051, 0.000407, 0.917431, 0.000756, 96 0.903445, 0.002160, 0.888782, 0.005829, 0.872604, 0.011972, 97 0.842838, 0.023344, 0.814658, 0.040444, 0.787406, 0.056982, 98 0.787049, 0.057198, 99 0.779094, 0.062111, 0.770959, 0.067003, 0.763092, 0.071733, 100 0.755616, 0.076228, 0.747885, 0.080877, 0.740322, 0.085536, 101 0.715897, 0.100667, 0.687906, 0.118856, 0.664830, 0.143282, 102 0.655450, 0.153337, 0.646158, 0.164412, 0.637213, 0.176198, 103 0.628832, 0.187242, 0.620487, 0.199262, 0.612411, 0.211927, 104 0.599025, 0.233035, 0.585902, 0.256540, 0.572296, 0.283785, 105 0.559363, 0.309680, 0.547303, 0.336361, 0.537211, 0.359044, 106 0.531569, 0.371160, 0.524734, 0.385013, 0.514991, 0.396163, 107 0.515458, 0.393140, 0.516021, 0.390068, 0.516567, 0.387096, 108 0.518222, 0.378075, 0.519933, 0.368746, 0.519220, 0.359351, 109 0.518849, 0.353698, 0.517257, 0.347795, 0.514490, 0.341807, 110 0.525767, 0.316394, 0.535723, 0.289763, 0.545350, 0.264009, 111 0.549268, 0.253532, 0.553317, 0.242697, 0.557400, 0.232097, 112 0.558269, 0.229903, 0.559129, 0.227657, 0.559961, 0.225484, 113 0.562894, 0.217827, 0.565926, 0.209908, 0.569931, 0.202734, 114 0.570101, 0.202412, 0.570272, 0.202089, 0.570443, 0.201765, 115 0.573622, 0.195744, 0.576909, 0.189518, 0.577757, 0.182438, 116 0.578339, 0.177538, 0.576559, 0.172383, 0.572995, 0.168649, 117 0.572952, 0.168603, 118 0.572927, 0.168664, 119 0.571876, 0.171135, 0.571043, 0.173762, 0.570237, 0.176303, 120 0.569698, 0.178001, 0.569141, 0.179758, 0.568523, 0.181453, 121 0.559856, 0.207043, 0.549627, 0.232362, 0.539734, 0.256848, 122 0.533800, 0.271536, 0.527664, 0.286723, 0.521930, 0.301809, 123 0.520066, 0.306464, 0.518896, 0.311494, 0.517766, 0.316358, 124 0.516331, 0.322533, 0.514848, 0.328918, 0.511928, 0.334565, 125 0.509243, 0.339707, 0.505293, 0.343102, 0.501099, 0.343881, 126 0.496390, 0.343827, 0.491623, 0.340706, 0.488658, 0.335735, 127 0.485246, 0.330155, 0.483362, 0.323648, 0.481539, 0.317355, 128 0.480411, 0.313464, 0.479246, 0.309440, 0.477730, 0.305670, 129 0.473688, 0.295601, 0.469520, 0.285535, 0.465598, 0.276088, 130 0.460318, 0.263417, 0.455498, 0.249775, 0.450860, 0.234382, 131 0.450381, 0.232850, 0.449904, 0.231314, 0.449427, 0.229777, 132 0.442988, 0.209044, 0.436330, 0.187605, 0.424264, 0.169941, 133 0.424243, 0.169910, 134 0.422251, 0.170903, 135 0.422260, 0.170944, 136 0.427099, 0.192915, 0.434511, 0.213736, 0.441800, 0.232965, 137 0.446725, 0.245803, 0.451991, 0.258730, 0.457084, 0.271232, 138 0.466770, 0.295008, 0.476785, 0.319592, 0.484880, 0.344614, 139 0.484479, 0.345589, 0.483947, 0.346506, 0.483432, 0.347394, 140 0.482759, 0.348553, 0.482064, 0.349751, 0.481652, 0.351096, 141 0.478890, 0.358331, 0.479848, 0.366528, 0.481295, 0.374308, 142 0.481535, 0.375769, 0.481819, 0.377267, 0.482092, 0.378715, 143 0.483208, 0.384609, 0.484361, 0.390701, 0.483123, 0.396684, 144 0.464551, 0.354942, 0.444111, 0.310539, 0.420513, 0.268591, 145 0.409919, 0.249696, 0.398977, 0.231782, 0.387993, 0.215345, 146 0.376149, 0.197621, 0.363804, 0.180939, 0.351302, 0.165762, 147 0.335506, 0.146419, 0.320183, 0.130559, 0.304457, 0.117277, 148 0.285094, 0.100717, 0.263209, 0.085094, 0.233498, 0.066623, 149 0.216130, 0.055916, 0.193166, 0.042107, 0.169549, 0.030252, 150 0.157334, 0.024158, 0.146468, 0.019259, 0.136331, 0.015277, 151 0.124194, 0.010508, 0.112940, 0.006966, 0.101924, 0.004449, 152 0.089957, 0.001783, 0.077226, 0.000287, 0.064083, 0.000001, 153 0.063913, 0.000000, 0.063743, 0.000000, 0.063573, 0.000000, 154 0.047727, 0.000000, 0.035764, 0.003718, 0.026998, 0.011369, 155 0.018384, 0.019899, 0.013592, 0.032061, 0.010042, 0.042833, 156 0.004378, 0.060560, 0.001059, 0.080429, 0.000178, 0.101887, 157 -0.000434, 0.118425, 0.000530, 0.133075, 0.003124, 0.146675, 158 0.005473, 0.158080, 0.011228, 0.167827, 0.016793, 0.177252, 159 0.019569, 0.181954, 0.022439, 0.186816, 0.024848, 0.191819, 160 0.028514, 0.198869, 0.031442, 0.207183, 0.034062, 0.217987, 161 0.040758, 0.245180, 0.044408, 0.273539, 0.047938, 0.300966, 162 0.050632, 0.321896, 0.053418, 0.343539, 0.057539, 0.364526, 163 0.059785, 0.375450, 0.061848, 0.383680, 0.064226, 0.391211, 164 0.067248, 0.400780, 0.070726, 0.408921, 0.074857, 0.416099, 165 0.080169, 0.425346, 0.087823, 0.433270, 0.096990, 0.439015, 166 0.102601, 0.442564, 0.108760, 0.445464, 0.115819, 0.447879, 167 0.121663, 0.449879, 0.128174, 0.451550, 0.135724, 0.452987, 168 0.148144, 0.455266, 0.160328, 0.456346, 0.170609, 0.457103, 169 0.176430, 0.457531, 0.182358, 0.457902, 0.188090, 0.458261, 170 0.208442, 0.459535, 0.229488, 0.460852, 0.249919, 0.464963, 171 0.250733, 0.465151, 0.251518, 0.465456, 0.252249, 0.465763, 172 0.244052, 0.471806, 0.235637, 0.477802, 0.227498, 0.483601, 173 0.213265, 0.493741, 0.198547, 0.504227, 0.184513, 0.515315, 174 0.157191, 0.536822, 0.137272, 0.556896, 0.121828, 0.578488, 175 0.116857, 0.585609, 0.111658, 0.593254, 0.107522, 0.601548, 176 0.107517, 0.601571, 177 0.107229, 0.617612, 0.108009, 0.634682, 0.110046, 0.656919, 178 0.114472, 0.703027, 0.123678, 0.747454, 0.134364, 0.796592, 179 0.134397, 0.796741, 180 0.142032, 0.831679, 0.149928, 0.867806, 0.161323, 0.902046, 181 0.168637, 0.923705, 0.176050, 0.940619, 0.184650, 0.955275, 182 0.190128, 0.964972, 0.197358, 0.973862, 0.206137, 0.981700, 183 0.215385, 0.989861, 0.223951, 0.995206, 0.232323, 0.998040, 184 0.236067, 0.999347, 0.240162, 0.999983, 0.244841, 0.999983, 185 0.246773, 0.999983, 0.248772, 0.999877, 0.250954, 0.999656, 186 0.262942, 0.998220, 0.275491, 0.993342, 0.288254, 0.985158, 187 0.301910, 0.976633, 0.314643, 0.965047, 0.326102, 0.950719, 188 0.341620, 0.931379, 0.355720, 0.908251, 0.370474, 0.877935, 189 0.381824, 0.854509, 0.392204, 0.829376, 0.402205, 0.801098, 190 0.410327, 0.778394, 0.417695, 0.753602, 0.424103, 0.727411, 191 0.426925, 0.716082, 0.429640, 0.704514, 0.432266, 0.693326, 192 0.436645, 0.674668, 0.441173, 0.655375, 0.446330, 0.636628, 193 0.452661, 0.613947, 0.460882, 0.587568, 0.473848, 0.563846, 194 0.476793, 0.577381, 0.476673, 0.591583, 0.476556, 0.605318, 195 0.476542, 0.607014, 0.476527, 0.608767, 0.476518, 0.610487, 196 0.476470, 0.614319, 0.476391, 0.618218, 0.476313, 0.621989, 197 0.476063, 0.634239, 0.475803, 0.646905, 0.476596, 0.659341, 198 0.477128, 0.667063, 0.478080, 0.676065, 0.481106, 0.684272, 199 0.483337, 0.690191, 0.486853, 0.694657, 0.491005, 0.696847, 200 0.493582, 0.698189, 0.496437, 0.698870, 0.499491, 0.698869, 201 0.502595, 0.698869, 0.505815, 0.698142, 0.508803, 0.696767, 202 0.515676, 0.693339, 0.518814, 0.685534, 0.520073, 0.681187, 203 0.522839, 0.671664, 0.523222, 0.661301, 0.523364, 0.652336, 204 0.523469, 0.643817, 0.523203, 0.635163, 0.522947, 0.626793, 205 0.522661, 0.617472, 0.522365, 0.607833, 0.522580, 0.598348, 206 0.522939, 0.586709, 0.523665, 0.574444, 0.528129, 0.563620, 207 0.540224, 0.596614, 0.550134, 0.631187, 0.559718, 0.664623, 208 0.560086, 0.665910, 209 0.561636, 0.671376, 0.563206, 0.676935, 0.564725, 0.682311, 210 0.573685, 0.714023, 0.582949, 0.746814, 0.593021, 0.778688, 211 0.602829, 0.809554, 0.616473, 0.849915, 0.635089, 0.888377, 212 0.642467, 0.903459, 0.649743, 0.916506, 0.657333, 0.928262, 213 0.666111, 0.941858, 0.675091, 0.953417, 0.684786, 0.963601, 214 0.694124, 0.973455, 0.705544, 0.981993, 0.718730, 0.988978, 215 0.730344, 0.994940, 0.740943, 0.998413, 0.751134, 0.999595, 216 0.753296, 0.999864, 0.755462, 1.000000, 0.757571, 1.000000, 217 0.764286, 1.000000, 0.770528, 0.998652, 0.776124, 0.995996, 218 0.786561, 0.991208, 0.796201, 0.982452, 0.805598, 0.969225, 219 0.812476, 0.959519, 0.818763, 0.948102, 0.825386, 0.933294, 220 0.836892, 0.907222, 0.845008, 0.880016, 0.851429, 0.856842, 221 0.860333, 0.823959, 0.866557, 0.798444, 0.871610, 0.774111, 222 0.883378, 0.718009, 0.890229, 0.659922, 0.891971, 0.601464, 223 0.891971, 0.601449, 224 0.891964, 0.601436, 225 0.885844, 0.590088, 0.878517, 0.578874, 0.870186, 0.568105, 226 0.862500, 0.558167, 0.853755, 0.548345, 0.844194, 0.538911, 227 0.831804, 0.526844, 0.820427, 0.517254, 0.809413, 0.509593, 228 0.803694, 0.505538, 0.797760, 0.501591, 0.792021, 0.497774, 229 0.776458, 0.487424, 0.760368, 0.476723, 0.746737, 0.462659, 230 0.756830, 0.461866, 0.767107, 0.461367, 0.777048, 0.460884, 231 0.784049, 0.460544, 0.791287, 0.460192, 0.798401, 0.459740, 232 0.825745, 0.458022, 0.850344, 0.456095, 0.874493, 0.449883, 233 0.886652, 0.446557, 0.900634, 0.441847, 0.912144, 0.432128, 234 0.919904, 0.425456, 0.926036, 0.415550, 0.931439, 0.400953, 235 0.937185, 0.385330, 0.940611, 0.369085, 0.943900, 0.352426, 236 0.944476, 0.349326, 0.945069, 0.346176, 0.945642, 0.343130, 237 0.947313, 0.334259, 0.949041, 0.325086, 0.950540, 0.316019, 238 0.952343, 0.304715, 0.953756, 0.293146, 0.955122, 0.281958, 239 0.955879, 0.275752, 0.956663, 0.269335, 0.957504, 0.263038, 240 0.961054, 0.236741, 0.965083, 0.211233, 0.975254, 0.188238, 241 0.977302, 0.183515, 0.979523, 0.178784, 0.981670, 0.174210, 242 0.985841, 0.165325, 0.990154, 0.156138, 0.993408, 0.146564, 243 0.997628, 0.134251, 0.999838, 0.121996, 0.999978, 0.110139, 244 1.000176, 0.093057, 0.999051, 0.078277, 0.996537, 0.064954 245 }; 246 247 // Public domain. 248 constexpr char fish_commands[] = 249 "MCCCCCCCCCCCCCCZMCCCCCCCCCCCCCCCCCCCCCCCLLZMCCCCCCCCCCCCCCCCCCCCCCCLLCZMCCCZMCCCCCCCZMCCCCCCZMCCCZMCCCCCZMCCCCCCZMCCCCCCCZMCCCCLLCCLLCCCZMCCLLCZMCCCCLLCCZMCCCCCZMLLCCLLCCZMCCCCCZMCCCCZMCCCLLCCCCZMCLLLLCCZMCCCCCCZMCCCCCCZMCCCLLCZMCCCCCZMCCCCCCCZMCCCCCCCZMCCCCLLCZMCCCCCCCCCZMCCCCCCCZMCCCCCCZMCCCCCCCZMCCCCCZMCCCCZMCLLCCCZMCCCCCZMCCLLZMCCCCCZMCCCCZMCCCCZ"; 250 251 constexpr double fish_vertices[] = { 252 0.437004, 0.847854, 253 0.428891, 0.844338, 0.405683, 0.812911, 0.399583, 0.797114, 254 0.396960, 0.790304, 0.358929, 0.754357, 0.347127, 0.747547, 255 0.325473, 0.734987, 0.300383, 0.709143, 0.289068, 0.687641, 256 0.269034, 0.649600, 0.270141, 0.593301, 0.292185, 0.529343, 257 0.309919, 0.477855, 0.313213, 0.483487, 0.317117, 0.572051, 258 0.318520, 0.603739, 0.321814, 0.637013, 0.324650, 0.647931, 259 0.333037, 0.680245, 0.372226, 0.735769, 0.372104, 0.715171, 260 0.372104, 0.712883, 0.367560, 0.705331, 0.362010, 0.698420, 261 0.349353, 0.682629, 0.333311, 0.652375, 0.337642, 0.652375, 262 0.339411, 0.652375, 0.346181, 0.655780, 0.352708, 0.659944, 263 0.359204, 0.664108, 0.378235, 0.671945, 0.395008, 0.677365, 264 0.434777, 0.690198, 0.453442, 0.700904, 0.467258, 0.718744, 265 0.486044, 0.743025, 0.489551, 0.770377, 0.478847, 0.808781, 266 0.469514, 0.842272, 0.455180, 0.855613, 0.437004, 0.847854, 267 0.915453, 0.797505, 268 0.912281, 0.787960, 0.906548, 0.758822, 0.902705, 0.732755, 269 0.898130, 0.701585, 0.893830, 0.683438, 0.890140, 0.679821, 270 0.887029, 0.676790, 0.884498, 0.670644, 0.884498, 0.666168, 271 0.884498, 0.655512, 0.862936, 0.626698, 0.841801, 0.609120, 272 0.827345, 0.597091, 0.819263, 0.594780, 0.783123, 0.592291, 273 0.756224, 0.590443, 0.740121, 0.587032, 0.738200, 0.582768, 274 0.736523, 0.579117, 0.734296, 0.553719, 0.733198, 0.526334, 275 0.732100, 0.498949, 0.727800, 0.456566, 0.723652, 0.432156, 276 0.712643, 0.367366, 0.707001, 0.327919, 0.706208, 0.310191, 277 0.704774, 0.277843, 0.726245, 0.265496, 0.760982, 0.278697, 278 0.767691, 0.281248, 0.782818, 0.283844, 0.794621, 0.284458, 279 0.806393, 0.285072, 0.818958, 0.287567, 0.822557, 0.289989, 280 0.831554, 0.296091, 0.833871, 0.313741, 0.828229, 0.333640, 281 0.820879, 0.359702, 0.822282, 0.365870, 0.837775, 0.375538, 282 0.856836, 0.387433, 0.870591, 0.386747, 0.895599, 0.372647, 283 0.923443, 0.356967, 0.955405, 0.325251, 0.974527, 0.294382, 284 0.978248, 0.288343, 0.984256, 0.285128, 0.989776, 0.286183, 285 0.998133, 0.287790, 0.998956, 0.289861, 0.999840, 0.312077, 286 1.001213, 0.346495, 0.994076, 0.375706, 0.964981, 0.454986, 287 0.936375, 0.532865, 0.935978, 0.535790, 0.945310, 0.600066, 288 0.948513, 0.621959, 0.952081, 0.660022, 0.953240, 0.684649, 289 0.955222, 0.726335, 0.954795, 0.731582, 0.946988, 0.760776, 290 0.942383, 0.778080, 0.934697, 0.797282, 0.929909, 0.803534, 291 0.921217, 0.814865, 292 0.915453, 0.797505, 293 0.096496, 0.729908, 294 0.078710, 0.724828, 0.064104, 0.702467, 0.064104, 0.680318, 295 0.064104, 0.665983, 0.064510, 0.665699, 0.084690, 0.665732, 296 0.113157, 0.665782, 0.137183, 0.650979, 0.145472, 0.628283, 297 0.155796, 0.600010, 0.156805, 0.579586, 0.148766, 0.561596, 298 0.137991, 0.537487, 0.117756, 0.525452, 0.046553, 0.500814, 299 0.024610, 0.493222, 0.017738, 0.476343, 0.003542, 0.395209, 300 -0.004623, 0.348522, 0.000690, 0.334204, 0.026171, 0.334204, 301 0.037965, 0.334204, 0.043777, 0.330096, 0.059154, 0.310877, 302 0.092007, 0.269828, 0.168849, 0.207204, 0.198291, 0.197486, 303 0.204162, 0.195543, 0.211958, 0.195995, 0.215617, 0.198496, 304 0.222479, 0.203174, 0.271486, 0.339585, 0.271486, 0.354009, 305 0.271486, 0.358296, 0.265255, 0.389817, 0.257637, 0.424062, 306 0.250025, 0.458313, 0.244532, 0.487685, 0.245438, 0.489343, 307 0.247606, 0.493312, 0.247143, 0.494819, 0.260656, 0.440261, 308 0.274332, 0.385056, 0.275103, 0.383046, 0.281062, 0.387232, 309 0.286101, 0.390777, 0.301981, 0.446641, 0.301981, 0.460830, 310 0.301981, 0.465865, 0.297824, 0.481835, 0.292749, 0.496315, 311 0.281023, 0.529756, 0.269601, 0.582958, 0.265045, 0.625347, 312 0.261053, 0.662528, 0.252160, 0.680284, 0.237530, 0.680284, 313 0.226731, 0.680284, 0.226636, 0.675171, 0.236581, 0.630365, 314 0.240866, 0.611057, 0.243883, 0.588640, 0.243279, 0.580557, 315 0.242275, 0.567083, 0.241553, 0.568188, 0.234639, 0.593764, 316 0.222671, 0.638046, 0.210259, 0.675629, 0.199313, 0.700709, 317 0.189185, 0.723935, 318 0.162478, 0.727731, 319 0.117994, 0.734150, 0.111952, 0.734318, 0.096496, 0.729908, 320 0.194305, 0.589237, 321 0.194864, 0.571777, 0.194089, 0.557482, 0.192588, 0.557482, 322 0.188968, 0.557482, 0.186187, 0.577543, 0.186138, 0.603996, 323 0.186068, 0.638420, 0.193143, 0.625643, 0.194305, 0.589237, 324 0.199057, 0.461751, 325 0.208481, 0.452681, 0.212702, 0.433406, 0.211274, 0.405921, 326 0.209487, 0.371497, 0.198136, 0.350805, 0.178858, 0.346825, 327 0.166748, 0.344330, 0.163567, 0.346138, 0.152908, 0.361595, 328 0.139007, 0.381740, 0.132044, 0.411140, 0.137088, 0.428388, 329 0.138857, 0.434439, 0.145460, 0.447233, 0.151761, 0.456817, 330 0.162301, 0.472848, 0.164442, 0.473954, 0.178471, 0.470571, 331 0.186858, 0.468539, 0.196120, 0.464570, 0.199057, 0.461751, 332 0.158397, 0.449918, 333 0.149824, 0.439379, 0.147808, 0.433094, 0.147061, 0.414595, 334 0.146323, 0.396298, 0.147693, 0.389259, 0.154399, 0.376984, 335 0.165924, 0.355890, 0.175842, 0.352574, 0.188959, 0.365429, 336 0.198956, 0.375226, 0.199890, 0.378318, 0.200719, 0.404436, 337 0.201811, 0.438731, 0.195867, 0.454294, 0.179743, 0.459329, 338 0.171310, 0.461963, 0.166446, 0.459820, 0.158397, 0.449918, 339 0.060905, 0.436074, 340 0.060710, 0.407646, 0.051963, 0.376069, 0.044293, 0.376069, 341 0.035500, 0.376069, 0.035461, 0.389270, 0.044137, 0.425179, 342 0.053259, 0.462940, 0.061131, 0.468053, 0.060905, 0.436074, 343 0.468203, 0.676422, 344 0.443927, 0.666212, 0.439230, 0.662495, 0.439230, 0.653552, 345 0.439261, 0.642701, 0.472686, 0.558654, 0.477352, 0.557772, 346 0.480707, 0.557136, 0.493608, 0.640513, 0.493943, 0.664934, 347 0.494126, 0.678733, 0.493120, 0.680217, 0.484214, 0.679637, 348 0.478755, 0.679280, 0.471558, 0.677834, 0.468203, 0.676422, 349 0.519622, 0.671839, 350 0.518646, 0.667195, 0.519104, 0.660290, 0.520659, 0.656489, 351 0.522215, 0.652687, 0.527369, 0.630745, 0.532126, 0.607719, 352 0.543502, 0.552603, 0.545271, 0.548752, 0.552041, 0.564515, 353 0.557562, 0.577426, 0.566131, 0.653558, 0.563051, 0.662629, 354 0.561099, 0.668428, 0.537402, 0.680284, 0.527765, 0.680284, 355 0.524258, 0.680284, 0.520598, 0.676483, 0.519622, 0.671839, 356 0.502025, 0.651375, 357 0.498548, 0.621166, 0.488393, 0.542617, 0.486563, 0.531967, 358 0.485068, 0.523303, 0.489216, 0.508941, 0.503153, 0.474517, 359 0.513370, 0.449276, 0.522855, 0.429862, 0.524197, 0.431380, 360 0.525539, 0.432893, 0.529900, 0.451676, 0.533865, 0.473105, 361 0.540971, 0.511230, 0.541001, 0.512703, 0.535969, 0.541752, 362 0.527308, 0.591799, 0.511052, 0.659726, 0.507179, 0.662087, 363 0.505166, 0.663321, 0.502848, 0.658504, 0.502025, 0.651375, 364 0.383572, 0.653887, 365 0.377289, 0.652682, 0.372135, 0.649360, 0.372135, 0.646514, 366 0.372135, 0.643667, 0.378570, 0.625883, 0.386408, 0.606999, 367 0.401931, 0.569667, 0.401809, 0.569667, 0.413734, 0.605659, 368 0.421114, 0.627948, 0.421267, 0.606474, 0.413978, 0.571961, 369 0.406292, 0.535640, 370 0.419772, 0.503912, 371 0.427183, 0.486468, 0.435875, 0.461238, 0.439108, 0.447852, 372 0.448623, 0.408539, 0.453076, 0.415499, 0.462042, 0.483582, 373 0.467349, 0.524113, 374 0.452527, 0.578475, 375 0.437553, 0.633469, 0.431636, 0.647524, 0.425354, 0.643120, 376 0.423463, 0.641791, 0.420138, 0.644582, 0.418004, 0.649321, 377 0.414191, 0.657733, 0.407970, 0.658554, 0.383572, 0.653887, 378 0.585650, 0.651353, 379 0.585650, 0.647306, 0.591994, 0.621657, 0.599770, 0.594350, 380 0.615538, 0.538793, 0.617886, 0.539056, 0.619625, 0.596555, 381 0.620692, 0.632838, 382 0.610018, 0.642076, 383 0.592878, 0.656907, 0.585619, 0.659670, 0.585650, 0.651353, 384 0.572414, 0.635623, 385 0.571590, 0.627948, 0.568724, 0.603728, 0.566070, 0.581797, 386 0.563417, 0.559865, 0.561252, 0.534746, 0.561282, 0.525977, 387 0.561343, 0.508969, 0.596263, 0.378860, 0.600777, 0.378860, 388 0.605870, 0.378860, 0.609926, 0.415287, 0.610750, 0.468171, 389 0.611543, 0.521199, 390 0.597270, 0.574227, 391 0.589401, 0.603393, 0.580953, 0.632274, 0.578452, 0.638414, 392 0.574000, 0.649366, 0.573908, 0.649310, 0.572414, 0.635623, 393 0.345602, 0.626296, 394 0.342644, 0.618096, 0.340265, 0.602187, 0.340265, 0.590934, 395 0.340265, 0.567473, 0.368963, 0.439530, 0.373599, 0.442198, 396 0.377533, 0.444436, 0.393056, 0.517264, 0.393300, 0.534534, 397 0.393605, 0.556723, 0.361949, 0.641211, 0.353318, 0.641211, 398 0.352006, 0.641211, 0.348530, 0.634501, 0.345602, 0.626296, 399 0.628377, 0.569455, 400 0.624504, 0.507970, 401 0.638930, 0.458771, 402 0.655856, 0.401065, 0.657655, 0.396845, 0.662077, 0.404927, 403 0.665859, 0.411866, 0.666561, 0.418006, 0.669519, 0.472128, 404 0.671715, 0.512357, 405 0.657350, 0.561439, 406 0.649451, 0.588428, 0.640576, 0.615110, 0.637618, 0.620725, 407 0.632464, 0.630510, 0.632068, 0.628378, 0.628377, 0.569455, 408 0.656954, 0.610951, 409 0.655307, 0.602974, 0.667933, 0.555958, 0.675740, 0.541160, 410 0.679339, 0.534333, 0.680315, 0.535165, 0.682785, 0.547094, 411 0.685652, 0.560797, 0.687269, 0.581328, 0.686598, 0.595444, 412 0.686293, 0.602327, 0.668817, 0.618883, 0.661864, 0.618883, 413 0.660095, 0.618883, 0.657869, 0.615311, 0.656954, 0.610951, 414 0.695412, 0.594462, 415 0.695412, 0.572229, 0.717583, 0.490532, 0.723622, 0.490510, 416 0.724872, 0.490504, 0.725909, 0.511704, 0.725909, 0.537627, 417 0.725909, 0.579999, 0.725238, 0.585631, 0.719139, 0.593446, 418 0.710630, 0.604336, 0.695412, 0.604990, 0.695412, 0.594462, 419 0.322210, 0.504972, 420 0.317788, 0.482232, 0.314189, 0.460250, 0.314159, 0.456130, 421 0.314128, 0.441260, 0.339411, 0.322616, 0.342278, 0.324357, 422 0.343864, 0.325334, 0.350238, 0.342901, 0.356368, 0.363398, 423 0.367560, 0.400663, 424 0.358716, 0.446976, 425 0.353836, 0.472446, 0.348865, 0.495807, 0.347676, 0.498877, 426 0.346456, 0.501947, 0.343833, 0.513881, 0.341820, 0.525391, 427 0.339777, 0.536907, 0.336331, 0.546323, 0.334165, 0.546323, 428 0.332000, 0.546323, 0.326632, 0.527708, 0.322210, 0.504972, 429 0.689495, 0.525386, 430 0.686689, 0.506876, 0.687635, 0.498196, 0.697638, 0.450292, 431 0.708922, 0.396136, 432 0.715906, 0.426485, 433 0.722921, 0.456839, 434 0.709928, 0.501472, 435 0.702792, 0.526016, 0.695991, 0.546156, 0.694802, 0.546217, 436 0.693612, 0.546279, 0.691233, 0.536901, 0.689495, 0.525386, 437 0.399125, 0.494685, 438 0.392995, 0.485514, 0.381284, 0.433680, 0.381284, 0.415617, 439 0.381284, 0.398882, 0.414557, 0.278373, 0.420321, 0.274243, 440 0.422487, 0.272680, 0.426177, 0.276113, 0.428525, 0.281868, 441 0.434289, 0.296063, 0.448410, 0.367595, 0.448410, 0.382477, 442 0.448379, 0.396320, 0.411874, 0.501433, 0.407024, 0.501567, 443 0.405256, 0.501618, 0.401687, 0.498525, 0.399125, 0.494685, 444 0.477383, 0.480730, 445 0.468538, 0.440523, 0.461341, 0.381572, 0.463811, 0.369616, 446 0.465946, 0.359317, 0.485190, 0.307165, 0.493333, 0.289593, 447 0.496505, 0.282733, 0.518128, 0.373797, 0.518372, 0.395086, 448 0.518463, 0.402477, 0.513218, 0.421316, 0.506722, 0.436951, 449 0.500226, 0.452586, 0.493303, 0.471029, 0.491351, 0.477939, 450 0.487142, 0.492938, 0.480372, 0.494289, 0.477383, 0.480730, 451 0.552804, 0.478079, 452 0.546735, 0.464464, 0.533651, 0.398631, 0.535359, 0.390163, 453 0.538805, 0.373088, 0.587205, 0.246032, 0.589340, 0.248449, 454 0.590560, 0.249822, 0.594403, 0.267740, 0.597849, 0.288270, 455 0.604162, 0.325597, 456 0.585132, 0.397040, 457 0.564698, 0.473741, 0.558171, 0.490074, 0.552804, 0.478079, 458 0.677723, 0.453529, 459 0.665524, 0.362253, 0.665249, 0.368098, 0.683731, 0.329002, 460 0.693765, 0.307762, 0.695229, 0.306384, 0.697790, 0.315583, 461 0.699376, 0.321220, 0.701511, 0.339345, 0.702517, 0.355856, 462 0.704103, 0.381388, 0.702975, 0.391832, 0.695137, 0.425631, 463 0.683273, 0.476683, 0.681261, 0.479954, 0.677723, 0.453529, 464 0.624260, 0.464447, 465 0.623132, 0.462404, 0.622217, 0.452753, 0.622217, 0.443007, 466 0.622217, 0.433261, 0.620173, 0.412954, 0.617673, 0.397883, 467 0.611543, 0.360852, 0.611909, 0.332289, 0.618862, 0.307467, 468 0.623864, 0.289710, 0.640394, 0.255108, 0.640576, 0.262057, 469 0.640637, 0.263358, 0.644572, 0.285647, 0.649360, 0.311580, 470 0.659424, 0.365915, 0.659058, 0.370241, 0.639723, 0.430493, 471 0.626669, 0.471168, 0.627249, 0.469912, 0.624260, 0.464447, 472 0.298483, 0.416526, 473 0.294027, 0.403482, 0.288254, 0.383336, 0.285646, 0.371754, 474 0.280986, 0.351022, 0.281108, 0.349845, 0.293356, 0.297793, 475 0.300203, 0.268694, 0.307339, 0.244938, 0.309230, 0.244988, 476 0.314110, 0.245127, 0.324449, 0.266629, 0.330548, 0.289370, 477 0.335733, 0.308683, 0.335702, 0.308862, 0.321704, 0.374494, 478 0.313957, 0.410660, 0.307400, 0.440255, 0.307126, 0.440250, 479 0.306821, 0.440244, 0.302939, 0.429571, 0.298483, 0.416526, 480 0.367298, 0.372273, 481 0.364431, 0.362080, 0.358393, 0.341181, 0.353879, 0.325831, 482 0.349365, 0.310481, 0.346346, 0.294154, 0.347139, 0.289549, 483 0.351073, 0.267237, 0.378308, 0.166746, 0.380412, 0.166768, 484 0.385414, 0.166824, 0.401578, 0.199428, 0.408562, 0.223615, 485 0.415850, 0.248739, 486 0.398314, 0.313512, 487 0.376966, 0.392418, 0.374373, 0.397330, 0.367298, 0.372273, 488 0.525246, 0.360997, 489 0.523233, 0.357313, 0.521586, 0.351341, 0.521586, 0.347718, 490 0.521586, 0.344095, 0.518049, 0.326936, 0.513687, 0.309588, 491 0.504050, 0.270966, 0.504935, 0.264854, 0.529302, 0.201460, 492 0.545832, 0.158496, 0.552145, 0.149872, 0.559800, 0.159852, 493 0.564985, 0.166601, 0.582582, 0.220098, 0.582582, 0.229107, 494 0.582582, 0.233701, 0.577092, 0.251803, 0.570383, 0.269331, 495 0.563673, 0.286864, 0.558184, 0.302460, 0.558184, 0.303989, 496 0.558184, 0.309437, 0.533541, 0.367696, 0.531254, 0.367696, 497 0.529973, 0.367696, 0.527259, 0.364681, 0.525246, 0.360997, 498 0.446013, 0.310481, 499 0.441042, 0.285150, 0.436040, 0.258870, 0.434912, 0.252077, 500 0.432624, 0.238557, 0.435095, 0.227606, 0.449490, 0.187667, 501 0.460926, 0.155984, 0.468490, 0.154711, 0.474315, 0.183492, 502 0.476480, 0.194237, 0.481268, 0.216710, 0.484897, 0.233433, 503 0.489960, 0.256604, 0.490784, 0.266774, 0.488466, 0.276185, 504 0.484257, 0.293065, 0.459554, 0.356197, 0.457083, 0.356381, 505 0.455955, 0.356465, 0.451014, 0.335806, 0.446013, 0.310481, 506 0.658887, 0.321645, 507 0.656936, 0.305524, 0.653825, 0.285150, 0.651995, 0.276370, 508 0.649250, 0.263319, 0.649738, 0.256682, 0.654496, 0.240087, 509 0.660260, 0.220070, 0.672855, 0.197446, 0.678192, 0.197446, 510 0.680449, 0.197446, 0.692008, 0.265306, 0.693472, 0.287310, 511 0.693838, 0.292680, 0.666481, 0.350950, 0.663584, 0.350950, 512 0.662974, 0.350950, 0.660870, 0.337765, 0.658887, 0.321645, 513 0.250217, 0.260762, 514 0.236508, 0.223123, 0.226667, 0.190770, 0.228115, 0.188119, 515 0.229552, 0.185490, 0.242602, 0.180684, 0.257116, 0.177430, 516 0.280919, 0.172104, 0.284253, 0.172523, 0.291105, 0.181694, 517 0.304399, 0.199489, 0.305238, 0.215147, 0.295207, 0.258848, 518 0.290276, 0.280338, 0.284686, 0.304826, 0.282786, 0.313272, 519 0.280879, 0.321717, 0.278333, 0.328622, 0.277125, 0.328622, 520 0.275917, 0.328622, 0.263807, 0.298083, 0.250217, 0.260762, 521 0.603168, 0.267455, 522 0.596275, 0.224441, 0.596214, 0.225379, 0.607377, 0.193534, 523 0.616190, 0.168443, 0.617319, 0.166991, 0.622168, 0.174996, 524 0.627414, 0.183676, 0.634428, 0.218541, 0.634428, 0.235834, 525 0.634428, 0.247209, 0.615733, 0.299998, 0.611555, 0.300400, 526 0.609877, 0.300567, 0.606096, 0.285736, 0.603168, 0.267455, 527 0.694143, 0.241583, 528 0.687769, 0.192149, 0.689507, 0.184608, 0.705061, 0.194058, 529 0.720035, 0.203146, 0.735071, 0.221259, 0.735071, 0.230185, 530 0.735071, 0.236459, 0.704695, 0.283967, 0.700700, 0.283967, 531 0.700090, 0.283967, 0.697132, 0.264893, 0.694143, 0.241583, 532 0.330182, 0.271407, 533 0.328505, 0.267567, 0.324357, 0.254254, 0.320911, 0.241812, 534 0.314689, 0.219199, 535 0.323595, 0.190955, 536 0.332134, 0.163960, 0.333201, 0.162559, 0.348206, 0.159311, 537 0.374038, 0.153706, 0.374526, 0.158356, 0.355343, 0.228253, 538 0.342046, 0.276760, 0.336617, 0.286065, 0.330182, 0.271407, 539 0.493315, 0.224167, 540 0.482275, 0.191513, 0.475321, 0.161610, 0.477395, 0.155515, 541 0.478401, 0.152484, 0.490845, 0.150000, 0.504996, 0.150000, 542 0.528936, 0.150000, 0.530736, 0.150804, 0.530736, 0.161471, 543 0.530736, 0.172506, 0.509509, 0.235086, 0.503410, 0.241962, 544 0.501793, 0.243799, 0.497249, 0.235789, 0.493315, 0.224167, 545 0.641046, 0.216447, 546 0.632720, 0.175828, 0.634611, 0.168900, 0.651720, 0.177268, 547 0.663462, 0.183012, 0.663858, 0.194695, 0.652940, 0.213841, 548 0.643791, 0.229866, 549 0.641046, 0.216447, 550 0.413594, 0.206807, 551 0.411154, 0.198139, 0.407006, 0.187790, 0.404383, 0.183799, 552 0.401761, 0.179808, 0.399595, 0.172116, 0.399595, 0.166712, 553 0.399595, 0.152836, 0.437687, 0.144731, 0.444457, 0.157162, 554 0.448392, 0.164368, 0.447721, 0.168794, 0.438754, 0.193857, 555 0.427226, 0.226138, 0.420090, 0.229805, 0.413594, 0.206807, 556 0.581514, 0.187952, 557 0.578434, 0.173606, 0.577580, 0.162492, 0.579319, 0.159339, 558 0.583741, 0.151245, 0.603930, 0.160254, 0.603930, 0.170324, 559 0.603930, 0.180187, 0.592524, 0.211401, 0.588925, 0.211401, 560 0.587645, 0.211401, 0.584290, 0.200846, 0.581514, 0.187952, 561 0.302740, 0.189152, 562 0.296897, 0.172021, 0.298160, 0.166746, 0.308102, 0.166746, 563 0.314872, 0.166746, 0.317251, 0.169353, 0.317251, 0.176793, 564 0.317251, 0.186327, 0.311914, 0.200237, 0.308224, 0.200237, 565 0.307278, 0.200237, 0.304820, 0.195242, 0.302740, 0.189152 566 }; 567 568 // Extracted from: https://llvm.org/Logo.html (old logo). 569 constexpr char dragon_commands[] = 570 "MLCCCCLCCCLCCCCCCCCCLCLCCCCCCCCLCCCLCCCCCCCCLLCCCLCCCCCCCCCCCCLCCCCCCCCCCCCCCCCCCCCCCCLLCLLCCCLLCCCCCLCLCCCLCCCCCCCCCLCCCCCCCLCCCCCLCCCCCCCCCCCCCCLLLCCCCCCLCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCLLCCLCLCCCCCCLLLCCCLCLLCLLCCCCCCLCLLLCCCCCCLLCCCCLLCCCLCCCCCCLLLCCCCCCLCLCCCCCCCCLLCLLCCLCCCCCCCCCLCCCCLCCCCCLCCZMCLZMCLCCLZMCLLCLCCLCCCZ"; 571 572 constexpr double dragon_vertices[] = { 573 0.867886, 0.000277, 574 0.864345, 0.005538, 575 0.846621, 0.031677, 0.830066, 0.059176, 0.814765, 0.087893, 576 0.807847, 0.100544, 0.801637, 0.113854, 0.796184, 0.127714, 577 0.791803, 0.138182, 0.788323, 0.149273, 0.785810, 0.160777, 578 0.784906, 0.163906, 0.784440, 0.167228, 0.784435, 0.170580, 579 0.784435, 0.170802, 580 0.779145, 0.172954, 0.775573, 0.179511, 0.775685, 0.186863, 581 0.775581, 0.193745, 0.778679, 0.200000, 0.783476, 0.202591, 582 0.785060, 0.223139, 0.786809, 0.265839, 0.786393, 0.324434, 583 0.786226, 0.332299, 584 0.785039, 0.376212, 0.778945, 0.419646, 0.768144, 0.461175, 585 0.767478, 0.460622, 0.766894, 0.460400, 0.766478, 0.460455, 586 0.765228, 0.460622, 0.761853, 0.467101, 0.758562, 0.474357, 587 0.756145, 0.479341, 0.753604, 0.485156, 0.752146, 0.490473, 588 0.751353, 0.492925, 0.750929, 0.495559, 0.750896, 0.498227, 589 0.750814, 0.499871, 0.750956, 0.501522, 0.751312, 0.503100, 590 0.751729, 0.505150, 0.752229, 0.506313, 0.752229, 0.506313, 591 0.752187, 0.506442, 0.752146, 0.506571, 0.752104, 0.506700, 592 0.751483, 0.507784, 0.751081, 0.509062, 0.750937, 0.510411, 593 0.750437, 0.512017, 594 0.747170, 0.521946, 0.743584, 0.531684, 0.739688, 0.541204, 595 0.736480, 0.549068, 596 0.735524, 0.551204, 0.734552, 0.553327, 0.733564, 0.555437, 597 0.733275, 0.555146, 0.732968, 0.554886, 0.732647, 0.554662, 598 0.731008, 0.554310, 0.729329, 0.554784, 0.727939, 0.555991, 599 0.725981, 0.557930, 0.721648, 0.566736, 0.707191, 0.576372, 600 0.702275, 0.579640, 0.697775, 0.581523, 0.693859, 0.582686, 601 0.699426, 0.544863, 0.702880, 0.506544, 0.704191, 0.468043, 602 0.704842, 0.448459, 0.703948, 0.428839, 0.701525, 0.409503, 603 0.701650, 0.408949, 0.701650, 0.408561, 0.701650, 0.408561, 604 0.701442, 0.409115, 605 0.700342, 0.400562, 0.698896, 0.392095, 0.697109, 0.383750, 606 0.691460, 0.355523, 0.681156, 0.329321, 0.666944, 0.307044, 607 0.640655, 0.265285, 0.604616, 0.243907, 0.572952, 0.242523, 608 0.567744, 0.242412, 609 0.567744, 0.241969, 0.567744, 0.241581, 0.567828, 0.241194, 610 0.568703, 0.235766, 0.568828, 0.234160, 0.564203, 0.239421, 611 0.563378, 0.240370, 0.562586, 0.241368, 0.561828, 0.242412, 612 0.559620, 0.242467, 0.557620, 0.242633, 0.555745, 0.242800, 613 0.555590, 0.240813, 0.555549, 0.238813, 0.555620, 0.236818, 614 0.555787, 0.232609, 0.556620, 0.229785, 0.551996, 0.235046, 615 0.549579, 0.237573, 0.547568, 0.240718, 0.546079, 0.244295, 616 0.543996, 0.244738, 0.542746, 0.245126, 0.542746, 0.245126, 617 0.544621, 0.245015, 618 0.542663, 0.245458, 619 0.541997, 0.243132, 0.540455, 0.239643, 0.540663, 0.236597, 620 0.541080, 0.230062, 0.542455, 0.228843, 0.539122, 0.232997, 621 0.535039, 0.237981, 0.530706, 0.245513, 0.529956, 0.249556, 622 0.525956, 0.251218, 623 0.525206, 0.250221, 0.522873, 0.247341, 0.522373, 0.241360, 624 0.521832, 0.235268, 0.521873, 0.232166, 0.519040, 0.238535, 625 0.516450, 0.244540, 0.514620, 0.251070, 0.513624, 0.257864, 626 0.512291, 0.258695, 0.510999, 0.259525, 0.509749, 0.260411, 627 0.508147, 0.257680, 0.507307, 0.254293, 0.507374, 0.250830, 628 0.507166, 0.242855, 0.509041, 0.236375, 0.504583, 0.247064, 629 0.501817, 0.254169, 0.499771, 0.261730, 0.498500, 0.269550, 630 0.497000, 0.270934, 0.495542, 0.272374, 0.494125, 0.273925, 631 0.493940, 0.270792, 0.493829, 0.267652, 0.493792, 0.264510, 632 0.493709, 0.256645, 0.494667, 0.248172, 0.491001, 0.263125, 633 0.489918, 0.267501, 0.488793, 0.273759, 0.488084, 0.280903, 634 0.471252, 0.302226, 0.461003, 0.331690, 0.461253, 0.367966, 635 0.461253, 0.368353, 636 0.461212, 0.374833, 0.461462, 0.380981, 0.461837, 0.386630, 637 0.462670, 0.399811, 0.464211, 0.410887, 0.466294, 0.420136, 638 0.462336, 0.427336, 0.462003, 0.458295, 0.465878, 0.465440, 639 0.468919, 0.471200, 0.486543, 0.484824, 0.490292, 0.487538, 640 0.491822, 0.488925, 0.493149, 0.490670, 0.494209, 0.492688, 641 0.499000, 0.503100, 0.499000, 0.524091, 0.495334, 0.534890, 642 0.490876, 0.548071, 0.499792, 0.550674, 0.507208, 0.552613, 643 0.514624, 0.554607, 0.524498, 0.551339, 0.526498, 0.546078, 644 0.528456, 0.540816, 0.520082, 0.528964, 0.516624, 0.504651, 645 0.513124, 0.480338, 0.522040, 0.478399, 0.522040, 0.478399, 646 0.522040, 0.478399, 0.525998, 0.479729, 0.531914, 0.492190, 647 0.536497, 0.501882, 0.541372, 0.509525, 0.545913, 0.515063, 648 0.543583, 0.518893, 0.540745, 0.522121, 0.537539, 0.524589, 649 0.542538, 0.524866, 0.547538, 0.521764, 0.550204, 0.519771, 650 0.551155, 0.520672, 0.552143, 0.521504, 0.553162, 0.522263, 651 0.552492, 0.523218, 0.551797, 0.524141, 0.551079, 0.525032, 652 0.552608, 0.524845, 0.554117, 0.524436, 0.555579, 0.523814, 653 0.556694, 0.524447, 0.557873, 0.524858, 0.559078, 0.525032, 654 0.565536, 0.525697, 0.582826, 0.504651, 0.582826, 0.500719, 655 0.582826, 0.499722, 0.582201, 0.498504, 0.581243, 0.497230, 656 0.579493, 0.494738, 0.576244, 0.491691, 0.572619, 0.487427, 657 0.570968, 0.485447, 0.569436, 0.483299, 0.568036, 0.481002, 658 0.564653, 0.474969, 0.562617, 0.467790, 0.562161, 0.460289, 659 0.562161, 0.459735, 660 0.562036, 0.458018, 661 0.562036, 0.458018, 0.562328, 0.457631, 0.562703, 0.456911, 662 0.562703, 0.457132, 663 0.562870, 0.456579, 664 0.565036, 0.452148, 0.569119, 0.435588, 0.543288, 0.396876, 665 0.532464, 0.380676, 0.519394, 0.367400, 0.504791, 0.357775, 666 0.503041, 0.331634, 0.511041, 0.307210, 0.530872, 0.295192, 667 0.530664, 0.295469, 668 0.530997, 0.295137, 669 0.540455, 0.289488, 0.552537, 0.286552, 0.567536, 0.287605, 670 0.596284, 0.289598, 0.618365, 0.307487, 0.633781, 0.334403, 671 0.655195, 0.373836, 0.664528, 0.432985, 0.657737, 0.492578, 672 0.654904, 0.496177, 0.655445, 0.496731, 0.657195, 0.496842, 673 0.656546, 0.501911, 0.655782, 0.506954, 0.654904, 0.511962, 674 0.653779, 0.512792, 675 0.648654, 0.516891, 0.650821, 0.516835, 0.653779, 0.517888, 676 0.653529, 0.518995, 677 0.652696, 0.522595, 0.651737, 0.526195, 0.650779, 0.529684, 678 0.649552, 0.530160, 0.648342, 0.530715, 0.647154, 0.531346, 679 0.641530, 0.534281, 0.643821, 0.534669, 0.646654, 0.536386, 680 0.648488, 0.537604, 681 0.647154, 0.542035, 0.645738, 0.546465, 0.644280, 0.550730, 682 0.643157, 0.550962, 0.642044, 0.551277, 0.640947, 0.551671, 683 0.635030, 0.553665, 0.637280, 0.554441, 0.639947, 0.556656, 684 0.640519, 0.557120, 0.641075, 0.557619, 0.641613, 0.558151, 685 0.640180, 0.562136, 0.638694, 0.566088, 0.637155, 0.570003, 686 0.635000, 0.570175, 0.632865, 0.570639, 0.630781, 0.571388, 687 0.624948, 0.573382, 0.627156, 0.574157, 0.629823, 0.576372, 688 0.631239, 0.577480, 0.632322, 0.578643, 0.633197, 0.579640, 689 0.631905, 0.582707, 0.630586, 0.585753, 0.629239, 0.588778, 690 0.628281, 0.590772, 691 0.625384, 0.590538, 0.622478, 0.590988, 0.619698, 0.592101, 692 0.613782, 0.594095, 0.616032, 0.594870, 0.618698, 0.597086, 693 0.620247, 0.598353, 0.621698, 0.599818, 0.623031, 0.601461, 694 0.621314, 0.604813, 0.619564, 0.608137, 0.617782, 0.611430, 695 0.614644, 0.610376, 0.611368, 0.610282, 0.608199, 0.611153, 696 0.602200, 0.612261, 0.604366, 0.613368, 0.606824, 0.615916, 697 0.609658, 0.618851, 0.611032, 0.621399, 0.611741, 0.622451, 698 0.609158, 0.627103, 699 0.607324, 0.623891, 0.602950, 0.620236, 0.598908, 0.616414, 700 0.595257, 0.613026, 0.591158, 0.610583, 0.586826, 0.609214, 701 0.584826, 0.609214, 0.578535, 0.624057, 0.544455, 0.620125, 702 0.510332, 0.616193, 0.508208, 0.611817, 0.505208, 0.611817, 703 0.502291, 0.611817, 0.495917, 0.614974, 0.495709, 0.615085, 704 0.494292, 0.613977, 705 0.480301, 0.602506, 0.466782, 0.590046, 0.453796, 0.576649, 706 0.434464, 0.556157, 0.423798, 0.540816, 0.423798, 0.540816, 707 0.423798, 0.540816, 0.429506, 0.533893, 0.421840, 0.525087, 708 0.417404, 0.519568, 0.412700, 0.514443, 0.407758, 0.509746, 709 0.404558, 0.506381, 0.401189, 0.503309, 0.397675, 0.500553, 710 0.396415, 0.498244, 0.395193, 0.495899, 0.394009, 0.493519, 711 0.388693, 0.482140, 0.383650, 0.470541, 0.378885, 0.458738, 712 0.375210, 0.449140, 0.371736, 0.439407, 0.368469, 0.429552, 713 0.361803, 0.409614, 0.357220, 0.391780, 0.354054, 0.376162, 714 0.350934, 0.359380, 0.348872, 0.342281, 0.347888, 0.325044, 715 0.347763, 0.320575, 0.347818, 0.316101, 0.348054, 0.311641, 716 0.352199, 0.307338, 0.354626, 0.300742, 0.354637, 0.293752, 717 0.354625, 0.282327, 0.348244, 0.272684, 0.339722, 0.271211, 718 0.331222, 0.247563, 0.298808, 0.189410, 0.177985, 0.067401, 719 0.172694, 0.061974, 720 0.172902, 0.062195, 721 0.171402, 0.060700, 722 0.294475, 0.200819, 0.318473, 0.255593, 0.324806, 0.278466, 723 0.324408, 0.279049, 0.324032, 0.279659, 0.323681, 0.280294, 724 0.323431, 0.280054, 0.323182, 0.279814, 0.322931, 0.279574, 725 0.323681, 0.279574, 0.323973, 0.279297, 0.323973, 0.279297, 726 0.323973, 0.279297, 0.295975, 0.249058, 0.249521, 0.211176, 727 0.202900, 0.173128, 0.176652, 0.164156, 0.171194, 0.162605, 728 0.170069, 0.162273, 729 0.170069, 0.162273, 0.178652, 0.172795, 0.177319, 0.178057, 730 0.176902, 0.179829, 0.170319, 0.179275, 0.159778, 0.179607, 731 0.149641, 0.179660, 0.139530, 0.180958, 0.129573, 0.183484, 732 0.106225, 0.188966, 0.083991, 0.200848, 0.064286, 0.218376, 733 0.009916, 0.266504, 0.000000, 0.300675, 0.000000, 0.300675, 734 0.000000, 0.300675, 0.022915, 0.258141, 0.065828, 0.228400, 735 0.065245, 0.247064, 0.063870, 0.337449, 0.084368, 0.456579, 736 0.106491, 0.585067, 0.148154, 0.705083, 0.151612, 0.714941, 737 0.151779, 0.724799, 0.152279, 0.730005, 0.152279, 0.730005, 738 0.152279, 0.730005, 0.158445, 0.630869, 0.183776, 0.528023, 739 0.191067, 0.543696, 0.215357, 0.589886, 0.270269, 0.644106, 740 0.338097, 0.711119, 0.369011, 0.729174, 0.370261, 0.729839, 741 0.370302, 0.738534, 0.370469, 0.743131, 0.370469, 0.743131, 742 0.370469, 0.743131, 0.370677, 0.737593, 0.371219, 0.728565, 743 0.373052, 0.724965, 0.383635, 0.704750, 0.394217, 0.691458, 744 0.401112, 0.682479, 0.408647, 0.674411, 0.416715, 0.667367, 745 0.418048, 0.673459, 0.419340, 0.678665, 0.420590, 0.682652, 746 0.419757, 0.677280, 0.419090, 0.672130, 0.418423, 0.667034, 747 0.422881, 0.667588, 0.440838, 0.670690, 0.468669, 0.688800, 748 0.482960, 0.698104, 0.494042, 0.710676, 0.501917, 0.721753, 749 0.501718, 0.721852, 0.501524, 0.721963, 0.501333, 0.722085, 750 0.501143, 0.722208, 0.506458, 0.728288, 0.512541, 0.744405, 751 0.502283, 0.743885, 0.492027, 0.745454, 0.482126, 0.749057, 752 0.480862, 0.745503, 0.479500, 0.742011, 0.478043, 0.738589, 753 0.477778, 0.736005, 0.477231, 0.733487, 0.476419, 0.731113, 754 0.475294, 0.727734, 0.472461, 0.725574, 0.469586, 0.723359, 755 0.468314, 0.721711, 0.466851, 0.720346, 0.465253, 0.719316, 756 0.464289, 0.718191, 0.463509, 0.716815, 0.462961, 0.715273, 757 0.459462, 0.705083, 0.429714, 0.715938, 0.423715, 0.725242, 758 0.416424, 0.736540, 0.415007, 0.750940, 0.417882, 0.758915, 759 0.418757, 0.761407, 0.420798, 0.763456, 0.423631, 0.765007, 760 0.423715, 0.777247, 0.429339, 0.806545, 0.440463, 0.827812, 761 0.438334, 0.815648, 0.436831, 0.803306, 0.435964, 0.790871, 762 0.435589, 0.782010, 0.435964, 0.775696, 0.436589, 0.771487, 763 0.438547, 0.789653, 0.443838, 0.809369, 0.460628, 0.833793, 764 0.450296, 0.803886, 0.451462, 0.786053, 0.452504, 0.770435, 765 0.452879, 0.767998, 766 0.453129, 0.767942, 767 0.454629, 0.782508, 0.459045, 0.797517, 0.473211, 0.821332, 768 0.473001, 0.820825, 0.472807, 0.820308, 0.472627, 0.819781, 769 0.473211, 0.820944, 770 0.466240, 0.803462, 0.463795, 0.783414, 0.466253, 0.763900, 771 0.466586, 0.763733, 772 0.468503, 0.765395, 0.470377, 0.767610, 0.472169, 0.770712, 773 0.477502, 0.780238, 0.480002, 0.790040, 0.481002, 0.796742, 774 0.479857, 0.804045, 0.480856, 0.811653, 0.483793, 0.818009, 775 0.473586, 0.827922, 0.463586, 0.837171, 0.453796, 0.845756, 776 0.444213, 0.854008, 0.433381, 0.863091, 0.422256, 0.871786, 777 0.416424, 0.876217, 0.410632, 0.880536, 0.405008, 0.884524, 778 0.399383, 0.880259, 779 0.399467, 0.880259, 780 0.399133, 0.880038, 781 0.358720, 0.849079, 0.328723, 0.828421, 0.294225, 0.820113, 782 0.255437, 0.810864, 0.219773, 0.835787, 0.211607, 0.880038, 783 0.206275, 0.909422, 0.215499, 0.940077, 0.234605, 0.956467, 784 0.235105, 0.956910, 785 0.235647, 0.957464, 0.236189, 0.957851, 0.236772, 0.958350, 786 0.239272, 0.960343, 787 0.239355, 0.960343, 788 0.247354, 0.966436, 0.257020, 0.970922, 0.268144, 0.973469, 789 0.269311, 0.973746, 790 0.269561, 0.973746, 791 0.275241, 0.975008, 0.280973, 0.975822, 0.286726, 0.976183, 792 0.327348, 0.978786, 0.376552, 0.953587, 0.425173, 0.921797, 793 0.429339, 0.924788, 0.433589, 0.927778, 0.437922, 0.930990, 794 0.544038, 1.008693, 0.608658, 1.018773, 0.694317, 0.971309, 795 0.673402, 0.979672, 0.643988, 0.991026, 0.607074, 0.990361, 796 0.606817, 0.990174, 0.606533, 0.990060, 0.606241, 0.990029, 797 0.606283, 0.990361, 798 0.597250, 0.990151, 0.588235, 0.989227, 0.579285, 0.987592, 799 0.579285, 0.987537, 800 0.578035, 0.987370, 801 0.578035, 0.987204, 802 0.578021, 0.987241, 0.578007, 0.987278, 0.577994, 0.987315, 803 0.555689, 0.983029, 0.533898, 0.974912, 0.513166, 0.963168, 804 0.502559, 0.957221, 0.492198, 0.950529, 0.482126, 0.943119, 805 0.468076, 0.932803, 0.454104, 0.922298, 0.440213, 0.911606, 806 0.454712, 0.901748, 0.469044, 0.891502, 0.482960, 0.881423, 807 0.497750, 0.870955, 0.510957, 0.861374, 0.521207, 0.853731, 808 0.521582, 0.853509, 809 0.521873, 0.853454, 810 0.521873, 0.853454, 0.525331, 0.852457, 0.528539, 0.851128, 811 0.535622, 0.848248, 0.545621, 0.842876, 0.557495, 0.835455, 812 0.558662, 0.841934, 0.561453, 0.847362, 0.565620, 0.849466, 813 0.575410, 0.854506, 0.582576, 0.850962, 0.587368, 0.843817, 814 0.588118, 0.843264, 815 0.590076, 0.841214, 816 0.592159, 0.839553, 0.594534, 0.837504, 0.596575, 0.836230, 817 0.597304, 0.835799, 0.598040, 0.835393, 0.598783, 0.835011, 818 0.600450, 0.834458, 0.602033, 0.833738, 0.603616, 0.832962, 819 0.604991, 0.832408, 820 0.598950, 0.848857, 0.601200, 0.864586, 0.601200, 0.864586, 821 0.602991, 0.844039, 0.610366, 0.830913, 0.617532, 0.824987, 822 0.620198, 0.823492, 0.622948, 0.822218, 0.625865, 0.821276, 823 0.628531, 0.821276, 0.630697, 0.822550, 0.631864, 0.825153, 824 0.634780, 0.831799, 0.640905, 0.835898, 0.647029, 0.837670, 825 0.648029, 0.845977, 0.645155, 0.860045, 0.630364, 0.885632, 826 0.634114, 0.882198, 827 0.634280, 0.882032, 828 0.637280, 0.879096, 829 0.643238, 0.873115, 0.647779, 0.867466, 0.651196, 0.862205, 830 0.654618, 0.857283, 0.657317, 0.851554, 0.659153, 0.845313, 831 0.659653, 0.856389, 0.657362, 0.873392, 0.646196, 0.902690, 832 0.646196, 0.902690, 0.659403, 0.887404, 0.667611, 0.867798, 833 0.667861, 0.878376, 0.667194, 0.892333, 0.664986, 0.911274, 834 0.679360, 0.874001, 0.678527, 0.851183, 0.674944, 0.837836, 835 0.674527, 0.835842, 836 0.674457, 0.834630, 0.674318, 0.833427, 0.674110, 0.832242, 837 0.675860, 0.829085, 838 0.680777, 0.819892, 0.673861, 0.810034, 0.669444, 0.806101, 839 0.666944, 0.803886, 0.661112, 0.797572, 0.650529, 0.797406, 840 0.641155, 0.782453, 0.629281, 0.789099, 0.610616, 0.805437, 841 0.608408, 0.807377, 0.606097, 0.809098, 0.603700, 0.810588, 842 0.603083, 0.808341, 0.602316, 0.806173, 0.601408, 0.804108, 843 0.608074, 0.798791, 0.614990, 0.793086, 0.621990, 0.787050, 844 0.635197, 0.775585, 0.645030, 0.764010, 0.652321, 0.752989, 845 0.673569, 0.724356, 0.681068, 0.696498, 0.702733, 0.672905, 846 0.702191, 0.672960, 847 0.704691, 0.671188, 848 0.740272, 0.645823, 0.759145, 0.640894, 0.760478, 0.640561, 849 0.760353, 0.647650, 850 0.761103, 0.640727, 851 0.768530, 0.645562, 0.775302, 0.652000, 0.781143, 0.659779, 852 0.787118, 0.667762, 0.792197, 0.676845, 0.796225, 0.686751, 853 0.798058, 0.703421, 854 0.798058, 0.703421, 0.798058, 0.696941, 0.797642, 0.685145, 855 0.804016, 0.676726, 0.840138, 0.627325, 0.869469, 0.548515, 856 0.898383, 0.470757, 0.908799, 0.408783, 0.911841, 0.386574, 857 0.923472, 0.431180, 0.932730, 0.476817, 0.939547, 0.523149, 858 0.946363, 0.569481, 0.939463, 0.515783, 0.938255, 0.502436, 859 0.942296, 0.483827, 0.959753, 0.398759, 0.964378, 0.294417, 860 0.968544, 0.201318, 0.961670, 0.140452, 0.958545, 0.118631, 861 0.985543, 0.148371, 1.000000, 0.191016, 1.000000, 0.191016, 862 1.000000, 0.191016, 0.998333, 0.181989, 0.992167, 0.166814, 863 0.993001, 0.168309, 864 0.993001, 0.168309, 0.983168, 0.143110, 0.966169, 0.118188, 865 0.964032, 0.114960, 0.961852, 0.111784, 0.959628, 0.108662, 866 0.941630, 0.083241, 0.924048, 0.074490, 0.910882, 0.071444, 867 0.906716, 0.070337, 0.902425, 0.069783, 0.898050, 0.069783, 868 0.897259, 0.069783, 869 0.892051, 0.069617, 0.888884, 0.069894, 0.888634, 0.068343, 870 0.887801, 0.063081, 0.893217, 0.052559, 0.893217, 0.052559, 871 0.893217, 0.052559, 0.885843, 0.055106, 0.870136, 0.070835, 872 0.860553, 0.080084, 0.848471, 0.093542, 0.834597, 0.112926, 873 0.821570, 0.130482, 0.809195, 0.148873, 0.797517, 0.168032, 874 0.794392, 0.173294, 875 0.794090, 0.172950, 0.793770, 0.172636, 0.793434, 0.172352, 876 0.796600, 0.154020, 0.808516, 0.110434, 0.867928, 0.000000, 877 0.496667, 0.615805, 878 0.496835, 0.615912, 0.497002, 0.616022, 0.497167, 0.616137, 879 0.496667, 0.615805, 880 0.485710, 0.760133, 881 0.489376, 0.762570, 0.493626, 0.766004, 0.498333, 0.770878, 882 0.498125, 0.770878, 883 0.495817, 0.771653, 0.493631, 0.772966, 0.491667, 0.774755, 884 0.489505, 0.770952, 0.487740, 0.766779, 0.486418, 0.762349, 885 0.485710, 0.760133, 886 0.283435, 0.847085, 887 0.288934, 0.847085, 0.294934, 0.847860, 0.301433, 0.849743, 888 0.302266, 0.850020, 889 0.302975, 0.850242, 890 0.307558, 0.851737, 0.312266, 0.853676, 0.317015, 0.855891, 891 0.319390, 0.857054, 892 0.327348, 0.861152, 0.335847, 0.865694, 0.344846, 0.870789, 893 0.358178, 0.878487, 0.370636, 0.886130, 0.379760, 0.891558, 894 0.387384, 0.896431, 895 0.378177, 0.902302, 0.369719, 0.907286, 0.363345, 0.910886, 896 0.321098, 0.933926, 0.287101, 0.940572, 0.265936, 0.932541, 897 0.226564, 0.917643, 0.234272, 0.847473, 0.283435, 0.847140 898 }; 899 900 // Public domain. 901 constexpr char world_commands[] = 902 "MLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLLLLLLLLZMLLLLLLLLLLLLLLZ"; 903 904 constexpr double world_vertices[] = { 905 0.442757, 0.379556, 906 0.438444, 0.387420, 907 0.435571, 0.391353, 908 0.429823, 0.395678, 909 0.428960, 0.399218, 910 0.426949, 0.404332, 911 0.427238, 0.409837, 912 0.421488, 0.416522, 913 0.417463, 0.421635, 914 0.415165, 0.424782, 915 0.411716, 0.430287, 916 0.408841, 0.435398, 917 0.405679, 0.443658, 918 0.402517, 0.453096, 919 0.401941, 0.455062, 920 0.402805, 0.465289, 921 0.403379, 0.471974, 922 0.402230, 0.481413, 923 0.399357, 0.490065, 924 0.400506, 0.495569, 925 0.400793, 0.501863, 926 0.401081, 0.505402, 927 0.405680, 0.509729, 928 0.409130, 0.514841, 929 0.412004, 0.522707, 930 0.415166, 0.529392, 931 0.418615, 0.534900, 932 0.423215, 0.540404, 933 0.427525, 0.543942, 934 0.431549, 0.545909, 935 0.436148, 0.545909, 936 0.441323, 0.544337, 937 0.445634, 0.541976, 938 0.449083, 0.542369, 939 0.453106, 0.540799, 940 0.457992, 0.539224, 941 0.462880, 0.536862, 942 0.466902, 0.536077, 943 0.470352, 0.535684, 944 0.474663, 0.536862, 945 0.477539, 0.538438, 946 0.480124, 0.542763, 947 0.482136, 0.545911, 948 0.483861, 0.546303, 949 0.486736, 0.545518, 950 0.489897, 0.546699, 951 0.492483, 0.550630, 952 0.493347, 0.552203, 953 0.494783, 0.560855, 954 0.493634, 0.569506, 955 0.492197, 0.575800, 956 0.493634, 0.580519, 957 0.498808, 0.587989, 958 0.502256, 0.596643, 959 0.504270, 0.604507, 960 0.507143, 0.612375, 961 0.507718, 0.619059, 962 0.507431, 0.624171, 963 0.509156, 0.630858, 964 0.508293, 0.637150, 965 0.507718, 0.639510, 966 0.505132, 0.646199, 967 0.503407, 0.649735, 968 0.501970, 0.659174, 969 0.502832, 0.667037, 970 0.507718, 0.678838, 971 0.510304, 0.688275, 972 0.512316, 0.694569, 973 0.513178, 0.701254, 974 0.513467, 0.709513, 975 0.514616, 0.715807, 976 0.515478, 0.720528, 977 0.519502, 0.726820, 978 0.521227, 0.730753, 979 0.523527, 0.737438, 980 0.524964, 0.748449, 981 0.526975, 0.753956, 982 0.531288, 0.756315, 983 0.536462, 0.753563, 984 0.541060, 0.753563, 985 0.545373, 0.751203, 986 0.549973, 0.748844, 987 0.553995, 0.746089, 988 0.558881, 0.739405, 989 0.562905, 0.734291, 990 0.568367, 0.727211, 991 0.571527, 0.721707, 992 0.573252, 0.716986, 993 0.574978, 0.712268, 994 0.579579, 0.704009, 995 0.582739, 0.700076, 996 0.584464, 0.697715, 997 0.583891, 0.687885, 998 0.582740, 0.684735, 999 0.586190, 0.672937, 1000 0.591939, 0.664287, 1001 0.595676, 0.660354, 1002 0.601999, 0.652882, 1003 0.603724, 0.644621, 1004 0.603151, 0.635576, 1005 0.602000, 0.624171, 1006 0.598838, 0.608047, 1007 0.598262, 0.599395, 1008 0.601138, 0.592317, 1009 0.605737, 0.584449, 1010 0.613497, 0.571080, 1011 0.618957, 0.561249, 1012 0.625856, 0.552201, 1013 0.632181, 0.539616, 1014 0.634765, 0.534505, 1015 0.638503, 0.526639, 1016 0.641375, 0.509334, 1017 0.636202, 0.511300, 1018 0.629591, 0.512481, 1019 0.616946, 0.513660, 1020 0.611483, 0.511300, 1021 0.608323, 0.498716, 1022 0.602862, 0.488096, 1023 0.598261, 0.481413, 1024 0.593950, 0.473546, 1025 0.589639, 0.463321, 1026 0.585902, 0.451522, 1027 0.583315, 0.442870, 1028 0.575267, 0.420059, 1029 0.573255, 0.413767, 1030 0.577567, 0.418880, 1031 0.580729, 0.417698, 1032 0.585040, 0.423597, 1033 0.592515, 0.438150, 1034 0.595964, 0.449161, 1035 0.600276, 0.459388, 1036 0.605735, 0.468827, 1037 0.611773, 0.484164, 1038 0.614646, 0.497535, 1039 0.620107, 0.501076, 1040 0.627006, 0.498716, 1041 0.638503, 0.489668, 1042 0.648852, 0.483770, 1043 0.655173, 0.476300, 1044 0.661211, 0.466073, 1045 0.665233, 0.459780, 1046 0.668684, 0.450341, 1047 0.662648, 0.444835, 1048 0.658048, 0.436576, 1049 0.654023, 0.431465, 1050 0.647124, 0.440119, 1051 0.639077, 0.441297, 1052 0.633902, 0.433824, 1053 0.631604, 0.425173, 1054 0.629304, 0.416912, 1055 0.630166, 0.407080, 1056 0.637640, 0.416519, 1057 0.646550, 0.423206, 1058 0.653448, 0.423990, 1059 0.656035, 0.424383, 1060 0.658621, 0.426349, 1061 0.663794, 0.431855, 1062 0.668970, 0.433820, 1063 0.677882, 0.434608, 1064 0.683341, 0.434214, 1065 0.689665, 0.434998, 1066 0.695414, 0.438538, 1067 0.699725, 0.445225, 1068 0.704898, 0.450730, 1069 0.708635, 0.457416, 1070 0.715248, 0.455846, 1071 0.718123, 0.455846, 1072 0.720133, 0.465285, 1073 0.720133, 0.475903, 1074 0.728182, 0.501466, 1075 0.730481, 0.508941, 1076 0.732492, 0.517985, 1077 0.734792, 0.524278, 1078 0.739104, 0.524278, 1079 0.743990, 0.518771, 1080 0.745428, 0.514051, 1081 0.745428, 0.505008, 1082 0.744566, 0.493212, 1083 0.748302, 0.481019, 1084 0.752325, 0.473153, 1085 0.761237, 0.465680, 1086 0.767273, 0.456636, 1087 0.774459, 0.450737, 1088 0.776472, 0.451524, 1089 0.782507, 0.453491, 1090 0.789406, 0.464109, 1091 0.792856, 0.471976, 1092 0.798892, 0.480233, 1093 0.800330, 0.488492, 1094 0.805214, 0.484954, 1095 0.808662, 0.490460, 1096 0.811251, 0.503045, 1097 0.810962, 0.508549, 1098 0.811251, 0.518774, 1099 0.813549, 0.525856, 1100 0.814697, 0.514450, 1101 0.816135, 0.501081, 1102 0.820159, 0.502261, 1103 0.824470, 0.509339, 1104 0.829645, 0.516810, 1105 0.833381, 0.522316, 1106 0.839418, 0.519564, 1107 0.848330, 0.505011, 1108 0.846603, 0.493215, 1109 0.837118, 0.475517, 1110 0.833097, 0.462539, 1111 0.840857, 0.452708, 1112 0.847178, 0.462147, 1113 0.850053, 0.469225, 1114 0.854938, 0.455857, 1115 0.857526, 0.452710, 1116 0.862701, 0.447598, 1117 0.870749, 0.444058, 1118 0.878222, 0.431472, 1119 0.880809, 0.418888, 1120 0.876784, 0.403156, 1121 0.872763, 0.398045, 1122 0.865863, 0.386246, 1123 0.865574, 0.380347, 1124 0.868450, 0.374841, 1125 0.866724, 0.371696, 1126 0.861838, 0.372091, 1127 0.853217, 0.366586, 1128 0.860400, 0.353216, 1129 0.865862, 0.352821, 1130 0.868162, 0.361471, 1131 0.874198, 0.357147, 1132 0.877646, 0.359899, 1133 0.879084, 0.368158, 1134 0.881096, 0.369338, 1135 0.887706, 0.377597, 1136 0.889719, 0.386249, 1137 0.895469, 0.385070, 1138 0.900066, 0.376024, 1139 0.895755, 0.369338, 1140 0.886559, 0.360687, 1141 0.887132, 0.350460, 1142 0.889144, 0.343775, 1143 0.894318, 0.338661, 1144 0.899492, 0.338269, 1145 0.900356, 0.336695, 1146 0.904377, 0.323323, 1147 0.903803, 0.316245, 1148 0.903517, 0.302087, 1149 0.897480, 0.292648, 1150 0.888282, 0.285961, 1151 0.875635, 0.285177, 1152 0.871899, 0.280456, 1153 0.873625, 0.264723, 1154 0.879371, 0.258038, 1155 0.888859, 0.256073, 1156 0.902656, 0.258828, 1157 0.909267, 0.258828, 1158 0.910991, 0.248601, 1159 0.916164, 0.244273, 1160 0.922779, 0.246239, 1161 0.925940, 0.242308, 1162 0.927086, 0.243882, 1163 0.929674, 0.245451, 1164 0.930824, 0.255678, 1165 0.927376, 0.264723, 1166 0.930536, 0.275738, 1167 0.936285, 0.282423, 1168 0.940597, 0.291076, 1169 0.945483, 0.297368, 1170 0.948933, 0.298156, 1171 0.948933, 0.288717, 1172 0.949505, 0.276524, 1173 0.945770, 0.266693, 1174 0.938873, 0.261187, 1175 0.946059, 0.251355, 1176 0.950942, 0.248996, 1177 0.954968, 0.251355, 1178 0.959567, 0.244277, 1179 0.964740, 0.244277, 1180 0.967039, 0.241132, 1181 0.957844, 0.234838, 1182 0.951805, 0.230121, 1183 0.955256, 0.228548, 1184 0.958420, 0.224220, 1185 0.971642, 0.228548, 1186 0.979975, 0.229727, 1187 0.974227, 0.222647, 1188 0.960719, 0.218321, 1189 0.952096, 0.218713, 1190 0.943760, 0.214386, 1191 0.915306, 0.208095, 1192 0.911568, 0.214780, 1193 0.905243, 0.212026, 1194 0.888572, 0.208488, 1195 0.874490, 0.206127, 1196 0.863281, 0.203767, 1197 0.850059, 0.203767, 1198 0.840000, 0.202980, 1199 0.835114, 0.199442, 1200 0.830227, 0.197476, 1201 0.825916, 0.195902, 1202 0.823616, 0.200621, 1203 0.819016, 0.205341, 1204 0.812405, 0.204948, 1205 0.807231, 0.203375, 1206 0.800620, 0.202980, 1207 0.790560, 0.200228, 1208 0.784236, 0.196688, 1209 0.777338, 0.195902, 1210 0.765841, 0.199442, 1211 0.755494, 0.197868, 1212 0.745433, 0.195114, 1213 0.735085, 0.193148, 1214 0.739109, 0.186463, 1215 0.740545, 0.183318, 1216 0.734223, 0.180958, 1217 0.725887, 0.181744, 1218 0.718128, 0.179385, 1219 0.703757, 0.180958, 1220 0.698295, 0.182530, 1221 0.685648, 0.190395, 1222 0.674152, 0.192360, 1223 0.666390, 0.197866, 1224 0.668978, 0.207698, 1225 0.663230, 0.212024, 1226 0.656905, 0.201406, 1227 0.659779, 0.220283, 1228 0.654029, 0.218709, 1229 0.653742, 0.209270, 1230 0.651730, 0.202585, 1231 0.648569, 0.197866, 1232 0.644545, 0.195505, 1233 0.638510, 0.199439, 1234 0.642531, 0.208484, 1235 0.645981, 0.215169, 1236 0.632472, 0.216350, 1237 0.627296, 0.213597, 1238 0.620400, 0.210057, 1239 0.612926, 0.215955, 1240 0.605741, 0.216350, 1241 0.597406, 0.216350, 1242 0.587920, 0.221463, 1243 0.578434, 0.228541, 1244 0.566938, 0.236405, 1245 0.558314, 0.223427, 1246 0.566938, 0.222641, 1247 0.573547, 0.222641, 1248 0.573260, 0.216349, 1249 0.564063, 0.212809, 1250 0.556589, 0.209269, 1251 0.543941, 0.206124, 1252 0.536182, 0.205730, 1253 0.528708, 0.204944, 1254 0.521235, 0.208091, 1255 0.512899, 0.215955, 1256 0.502840, 0.226182, 1257 0.494504, 0.236800, 1258 0.492778, 0.242699, 1259 0.486455, 0.244665, 1260 0.484729, 0.245058, 1261 0.485017, 0.261182, 1262 0.491915, 0.258825, 1263 0.501975, 0.269441, 1264 0.506861, 0.275735, 1265 0.510310, 0.274160, 1266 0.516634, 0.265903, 1267 0.520658, 0.256857, 1268 0.517782, 0.250958, 1269 0.519220, 0.241911, 1270 0.524682, 0.234438, 1271 0.533879, 0.232081, 1272 0.533590, 0.236012, 1273 0.528991, 0.245451, 1274 0.533014, 0.252531, 1275 0.539052, 0.251350, 1276 0.544512, 0.250958, 1277 0.545949, 0.256071, 1278 0.539052, 0.259611, 1279 0.535314, 0.261183, 1280 0.533301, 0.270622, 1281 0.528416, 0.272196, 1282 0.523817, 0.282027, 1283 0.521231, 0.281633, 1284 0.517207, 0.281239, 1285 0.512033, 0.284779, 1286 0.508584, 0.285173, 1287 0.505709, 0.282027, 1288 0.499387, 0.282027, 1289 0.493925, 0.283206, 1290 0.492200, 0.280847, 1291 0.487314, 0.287141, 1292 0.486452, 0.287532, 1293 0.479841, 0.289893, 1294 0.477254, 0.296971, 1295 0.473230, 0.298544, 1296 0.468344, 0.305623, 1297 0.464895, 0.307196, 1298 0.461157, 0.308375, 1299 0.458284, 0.308769, 1300 0.453397, 0.311129, 1301 0.456559, 0.316635, 1302 0.452822, 0.319780, 1303 0.456271, 0.323320, 1304 0.458570, 0.328434, 1305 0.459433, 0.330793, 1306 0.458570, 0.337873, 1307 0.455984, 0.339838, 1308 0.449946, 0.341018, 1309 0.440749, 0.337086, 1310 0.437013, 0.338657, 1311 0.434140, 0.348096, 1312 0.433851, 0.358716, 1313 0.433562, 0.366975, 1314 0.435864, 0.372089, 1315 0.440749, 0.373269, 1316 0.445635, 0.374447, 1317 0.451672, 0.374841, 1318 0.460584, 0.367370, 1319 0.462595, 0.361864, 1320 0.465757, 0.352426, 1321 0.470355, 0.350065, 1322 0.473805, 0.342987, 1323 0.478116, 0.339054, 1324 0.487027, 0.338269, 1325 0.488463, 0.333548, 1326 0.491625, 0.334728, 1327 0.493636, 0.335123, 1328 0.497373, 0.342594, 1329 0.501685, 0.345739, 1330 0.506285, 0.348493, 1331 0.511170, 0.353998, 1332 0.513471, 0.357931, 1333 0.514907, 0.360292, 1334 0.510022, 0.367370, 1335 0.506285, 0.368156, 1336 0.510596, 0.370515, 1337 0.516919, 0.361470, 1338 0.516919, 0.359502, 1339 0.518357, 0.355571, 1340 0.521231, 0.356752, 1341 0.520943, 0.354786, 1342 0.514332, 0.346527, 1343 0.508294, 0.342199, 1344 0.505421, 0.337875, 1345 0.502257, 0.332760, 1346 0.503121, 0.327255, 1347 0.511168, 0.333153, 1348 0.516055, 0.338659, 1349 0.520941, 0.342987, 1350 0.525254, 0.348100, 1351 0.526402, 0.356359, 1352 0.529276, 0.360292, 1353 0.531862, 0.367370, 1354 0.534449, 0.372091, 1355 0.536461, 0.372484, 1356 0.538473, 0.371303, 1357 0.538759, 0.366977, 1358 0.541636, 0.364616, 1359 0.537324, 0.357538, 1360 0.538759, 0.353214, 1361 0.544797, 0.353998, 1362 0.550545, 0.353998, 1363 0.550545, 0.364616, 1364 0.553709, 0.370910, 1365 0.558594, 0.374843, 1366 0.564631, 0.375631, 1367 0.570380, 0.375238, 1368 0.577853, 0.375631, 1369 0.582452, 0.376811, 1370 0.583028, 0.382709, 1371 0.581015, 0.393328, 1372 0.575266, 0.403947, 1373 0.570382, 0.405127, 1374 0.560896, 0.403947, 1375 0.547387, 0.402766, 1376 0.538762, 0.399621, 1377 0.533014, 0.395688, 1378 0.531290, 0.396083, 1379 0.528128, 0.405915, 1380 0.525827, 0.407094, 1381 0.517205, 0.404342, 1382 0.508008, 0.397656, 1383 0.501109, 0.394904, 1384 0.495360, 0.388610, 1385 0.495648, 0.380745, 1386 0.497660, 0.373667, 1387 0.495360, 0.371702, 1388 0.488175, 0.374454, 1389 0.482138, 0.375635, 1390 0.467766, 0.378387, 1391 0.465466, 0.379173, 1392 0.460005, 0.381927, 1393 0.455120, 0.381533, 1394 0.450234, 0.381533, 1395 0.445059, 0.383497, 1396 0.442722, 0.379549, 1397 0.635048, 0.638326, 1398 0.631024, 0.648944, 1399 0.625274, 0.652877, 1400 0.622113, 0.655631, 1401 0.618089, 0.657991, 1402 0.616364, 0.660742, 1403 0.617226, 0.669787, 1404 0.616940, 0.676476, 1405 0.614640, 0.684338, 1406 0.612053, 0.688666, 1407 0.612341, 0.699678, 1408 0.616079, 0.707544, 1409 0.619528, 0.706364, 1410 0.624127, 0.703614, 1411 0.626425, 0.700074, 1412 0.627287, 0.689454, 1413 0.629876, 0.681983, 1414 0.632750, 0.673331, 1415 0.635049, 0.665861, 1416 0.636198, 0.656422, 1417 0.637062, 0.651703, 1418 0.637062, 0.646984, 1419 0.635018, 0.638317, 1420 0.860106, 0.691425, 1421 0.858095, 0.711875, 1422 0.856947, 0.726425, 1423 0.857809, 0.740191, 1424 0.856657, 0.751203, 1425 0.854648, 0.752775, 1426 0.856657, 0.756314, 1427 0.861546, 0.755920, 1428 0.868157, 0.753560, 1429 0.873904, 0.751199, 1430 0.881379, 0.750020, 1431 0.886264, 0.746482, 1432 0.894601, 0.743728, 1433 0.899775, 0.740190, 1434 0.908399, 0.739793, 1435 0.915008, 0.739793, 1436 0.920759, 0.747266, 1437 0.920468, 0.753560, 1438 0.923918, 0.753165, 1439 0.930242, 0.748446, 1440 0.933116, 0.746482, 1441 0.930816, 0.754739, 1442 0.931390, 0.759067, 1443 0.933116, 0.764571, 1444 0.933116, 0.770077, 1445 0.934263, 0.773222, 1446 0.939151, 0.777157, 1447 0.942888, 0.775584, 1448 0.948060, 0.777552, 1449 0.953523, 0.776372, 1450 0.967030, 0.765751, 1451 0.971342, 0.759459, 1452 0.975079, 0.754739, 1453 0.981692, 0.746087, 1454 0.987729, 0.735862, 1455 0.989740, 0.729566, 1456 0.992326, 0.718950, 1457 0.992900, 0.712265, 1458 0.992326, 0.701649, 1459 0.990601, 0.694567, 1460 0.985715, 0.691029, 1461 0.981977, 0.681197, 1462 0.977666, 0.672936, 1463 0.975079, 0.670185, 1464 0.975943, 0.662318, 1465 0.974794, 0.654848, 1466 0.972494, 0.646587, 1467 0.969619, 0.639902, 1468 0.967895, 0.634789, 1469 0.966458, 0.634394, 1470 0.964731, 0.646978, 1471 0.961569, 0.655632, 1472 0.958409, 0.662316, 1473 0.954959, 0.663888, 1474 0.951223, 0.663104, 1475 0.946910, 0.658383, 1476 0.944036, 0.654846, 1477 0.942025, 0.650518, 1478 0.942887, 0.643833, 1479 0.944899, 0.638719, 1480 0.943461, 0.636360, 1481 0.938574, 0.635965, 1482 0.933400, 0.635179, 1483 0.931389, 0.635572, 1484 0.924778, 0.642654, 1485 0.922769, 0.645406, 1486 0.920180, 0.647766, 1487 0.919890, 0.654058, 1488 0.912995, 0.651306, 1489 0.913281, 0.648946, 1490 0.909259, 0.645407, 1491 0.904947, 0.649341, 1492 0.902934, 0.654451, 1493 0.899485, 0.657598, 1494 0.898337, 0.663497, 1495 0.896326, 0.661533, 1496 0.895177, 0.659960, 1497 0.893165, 0.664678, 1498 0.891153, 0.670972, 1499 0.888564, 0.673725, 1500 0.881669, 0.678052, 1501 0.876208, 0.680804, 1502 0.871321, 0.682771, 1503 0.866721, 0.685916, 1504 0.862411, 0.689456, 1505 0.860164, 0.691396, 1506 0.877065, 0.536076, 1507 0.870744, 0.545909, 1508 0.866719, 0.547875, 1509 0.862120, 0.552988, 1510 0.858956, 0.560459, 1511 0.855508, 0.564787, 1512 0.851771, 0.569115, 1513 0.852921, 0.576586, 1514 0.855221, 0.583269, 1515 0.859244, 0.587599, 1516 0.867578, 0.587599, 1517 0.871316, 0.588779, 1518 0.873902, 0.587992, 1519 0.876202, 0.583666, 1520 0.876776, 0.579731, 1521 0.880801, 0.573832, 1522 0.881089, 0.569504, 1523 0.883389, 0.566753, 1524 0.882813, 0.562425, 1525 0.881375, 0.554165, 1526 0.883389, 0.547087, 1527 0.882813, 0.541187, 1528 0.878502, 0.536859, 1529 0.877084, 0.536055, 1530 0.933406, 0.575407, 1531 0.938869, 0.578160, 1532 0.941169, 0.587204, 1533 0.946052, 0.590353, 1534 0.950938, 0.584847, 1535 0.953238, 0.581307, 1536 0.956404, 0.582490, 1537 0.961576, 0.585240, 1538 0.970775, 0.589960, 1539 0.977385, 0.593893, 1540 0.981983, 0.597433, 1541 0.985145, 0.604904, 1542 0.987158, 0.608049, 1543 0.988596, 0.614732, 1544 0.997504, 0.624566, 1545 0.999232, 0.628894, 1546 0.991471, 0.627713, 1547 0.986583, 0.622994, 1548 0.980263, 0.615915, 1549 0.976813, 0.612769, 1550 0.971926, 0.617881, 1551 0.968189, 0.617488, 1552 0.961291, 0.615520, 1553 0.957844, 0.612769, 1554 0.954970, 0.610803, 1555 0.955256, 0.605295, 1556 0.954109, 0.600578, 1557 0.950084, 0.596250, 1558 0.944911, 0.593498, 1559 0.943760, 0.593105, 1560 0.940598, 0.591925, 1561 0.935425, 0.589958, 1562 0.934849, 0.585239, 1563 0.934849, 0.581306, 1564 0.930251, 0.576588, 1565 0.930537, 0.575407, 1566 0.933410, 0.575389, 1567 0.804059, 0.542750, 1568 0.807795, 0.544325, 1569 0.813257, 0.552975, 1570 0.818717, 0.559269, 1571 0.825903, 0.565168, 1572 0.830214, 0.573425, 1573 0.834525, 0.582476, 1574 0.836827, 0.587980, 1575 0.839124, 0.593879, 1576 0.837976, 0.600957, 1577 0.834813, 0.604104, 1578 0.830214, 0.599384, 1579 0.825615, 0.590341, 1580 0.820154, 0.578148, 1581 0.816418, 0.571068, 1582 0.812106, 0.560842, 1583 0.808656, 0.554943, 1584 0.806070, 0.548258, 1585 0.803197, 0.543142, 1586 0.804040, 0.542757, 1587 0.245013, 0.849518, 1588 0.237253, 0.843619, 1589 0.231505, 0.833391, 1590 0.228342, 0.825131, 1591 0.225469, 0.816481, 1592 0.228056, 0.811368, 1593 0.228342, 0.805863, 1594 0.226042, 0.800750, 1595 0.224031, 0.793277, 1596 0.220869, 0.786985, 1597 0.218569, 0.783838, 1598 0.216844, 0.751982, 1599 0.215695, 0.734284, 1600 0.215119, 0.718553, 1601 0.214544, 0.703216, 1602 0.214257, 0.687880, 1603 0.214257, 0.671363, 1604 0.210520, 0.665463, 1605 0.203047, 0.660745, 1606 0.194136, 0.650910, 1607 0.186663, 0.642259, 1608 0.182639, 0.632032, 1609 0.179190, 0.620629, 1610 0.174591, 0.610011, 1611 0.167692, 0.598607, 1612 0.168267, 0.592315, 1613 0.172003, 0.587596, 1614 0.170278, 0.582876, 1615 0.170278, 0.574224, 1616 0.174589, 0.565963, 1617 0.178900, 0.556133, 1618 0.182351, 0.547478, 1619 0.184362, 0.538435, 1620 0.182062, 0.530173, 1621 0.184362, 0.523882, 1622 0.191548, 0.512870, 1623 0.195859, 0.511689, 1624 0.200746, 0.507361, 1625 0.203333, 0.517193, 1626 0.205632, 0.520342, 1627 0.207356, 0.514439, 1628 0.210230, 0.506970, 1629 0.214829, 0.510510, 1630 0.219139, 0.513655, 1631 0.224600, 0.514050, 1632 0.235523, 0.515620, 1633 0.236959, 0.519554, 1634 0.243858, 0.525454, 1635 0.251619, 0.530567, 1636 0.256792, 0.538036, 1637 0.260529, 0.541183, 1638 0.265989, 0.543545, 1639 0.269151, 0.544332, 1640 0.276050, 0.554162, 1641 0.278061, 0.566356, 1642 0.273175, 0.575008, 1643 0.280073, 0.572648, 1644 0.283523, 0.572648, 1645 0.285248, 0.573827, 1646 0.284959, 0.576581, 1647 0.287834, 0.575008, 1648 0.293294, 0.577760, 1649 0.298755, 0.584054, 1650 0.302492, 0.583661, 1651 0.308529, 0.584840, 1652 0.313416, 0.586020, 1653 0.322325, 0.591525, 1654 0.326637, 0.595458, 1655 0.329511, 0.597426, 1656 0.333535, 0.602142, 1657 0.333821, 0.607254, 1658 0.329511, 0.619053, 1659 0.326637, 0.624559, 1660 0.324337, 0.628099, 1661 0.322038, 0.639503, 1662 0.320889, 0.644616, 1663 0.319740, 0.658776, 1664 0.318590, 0.669001, 1665 0.317440, 0.676079, 1666 0.313704, 0.688665, 1667 0.310830, 0.691811, 1668 0.305656, 0.694958, 1669 0.295884, 0.698498, 1670 0.290423, 0.705968, 1671 0.290423, 0.717376, 1672 0.286112, 0.727992, 1673 0.284676, 0.735463, 1674 0.283814, 0.739396, 1675 0.278927, 0.747263, 1676 0.277777, 0.750801, 1677 0.273753, 0.754732, 1678 0.272890, 0.755913, 1679 0.267716, 0.754732, 1680 0.262255, 0.751980, 1681 0.265130, 0.759060, 1682 0.270878, 0.765354, 1683 0.268866, 0.769680, 1684 0.268003, 0.771254, 1685 0.263979, 0.777548, 1686 0.261392, 0.778727, 1687 0.256794, 0.776760, 1688 0.255356, 0.780298, 1689 0.254781, 0.790132, 1690 0.249894, 0.790132, 1691 0.249319, 0.788164, 1692 0.247308, 0.788951, 1693 0.247883, 0.794456, 1694 0.250469, 0.798388, 1695 0.251045, 0.805074, 1696 0.249608, 0.808221, 1697 0.247308, 0.812941, 1698 0.247883, 0.818839, 1699 0.252482, 0.822773, 1700 0.252195, 0.831818, 1701 0.249321, 0.840469, 1702 0.250184, 0.847156, 1703 0.250759, 0.849516, 1704 0.245025, 0.849464, 1705 0.170858, 0.529384, 1706 0.168847, 0.525452, 1707 0.166547, 0.522699, 1708 0.161947, 0.517193, 1709 0.160510, 0.512869, 1710 0.160222, 0.501071, 1711 0.161085, 0.488879, 1712 0.160510, 0.485339, 1713 0.151887, 0.483373, 1714 0.145563, 0.484945, 1715 0.149300, 0.471182, 1716 0.152461, 0.459385, 1717 0.151599, 0.456240, 1718 0.145276, 0.455058, 1719 0.142402, 0.458204, 1720 0.137803, 0.468823, 1721 0.132630, 0.471970, 1722 0.126880, 0.471184, 1723 0.118258, 0.463713, 1724 0.116534, 0.452308, 1725 0.119407, 0.439330, 1726 0.122282, 0.428317, 1727 0.123719, 0.421632, 1728 0.130042, 0.416519, 1729 0.135215, 0.412193, 1730 0.140390, 0.410620, 1731 0.146138, 0.410620, 1732 0.150737, 0.413765, 1733 0.154761, 0.411013, 1734 0.159360, 0.405506, 1735 0.163671, 0.406294, 1736 0.167407, 0.407867, 1737 0.172006, 0.411798, 1738 0.173155, 0.414158, 1739 0.174306, 0.418483, 1740 0.175742, 0.429889, 1741 0.178616, 0.434608, 1742 0.181202, 0.430284, 1743 0.182065, 0.419664, 1744 0.180916, 0.406292, 1745 0.183789, 0.398426, 1746 0.197585, 0.385449, 1747 0.204195, 0.379550, 1748 0.206208, 0.375224, 1749 0.212244, 0.364999, 1750 0.216269, 0.359495, 1751 0.220005, 0.354383, 1752 0.226041, 0.348879, 1753 0.231503, 0.347303, 1754 0.234377, 0.339831, 1755 0.242425, 0.331965, 1756 0.250760, 0.327641, 1757 0.253347, 0.327641, 1758 0.250185, 0.333540, 1759 0.253634, 0.336685, 1760 0.260820, 0.329213, 1761 0.265706, 0.328425, 1762 0.270306, 0.325673, 1763 0.271168, 0.322135, 1764 0.268006, 0.321740, 1765 0.261107, 0.323313, 1766 0.257084, 0.318592, 1767 0.261682, 0.311907, 1768 0.251623, 0.312693, 1769 0.247023, 0.312693, 1770 0.247023, 0.308762, 1771 0.256509, 0.304040, 1772 0.274904, 0.302075, 1773 0.282952, 0.300895, 1774 0.289563, 0.294209, 1775 0.292437, 0.290277, 1776 0.293587, 0.285165, 1777 0.289563, 0.280838, 1778 0.286977, 0.281232, 1779 0.283815, 0.274153, 1780 0.282378, 0.268255, 1781 0.282953, 0.260388, 1782 0.282953, 0.255278, 1783 0.280080, 0.254883, 1784 0.268870, 0.262749, 1785 0.265707, 0.255278, 1786 0.264845, 0.250165, 1787 0.257372, 0.245444, 1788 0.250474, 0.244265, 1789 0.242137, 0.254883, 1790 0.238402, 0.260388, 1791 0.236966, 0.276907, 1792 0.228342, 0.281232, 1793 0.224607, 0.284772, 1794 0.221444, 0.296176, 1795 0.213971, 0.293424, 1796 0.214258, 0.282413, 1797 0.216845, 0.278873, 1798 0.198736, 0.273367, 1799 0.192701, 0.266682, 1800 0.192414, 0.257243, 1801 0.204772, 0.243873, 1802 0.217707, 0.236793, 1803 0.224318, 0.234435, 1804 0.225755, 0.228929, 1805 0.226329, 0.224208, 1806 0.229779, 0.227355, 1807 0.232079, 0.228139, 1808 0.238977, 0.222242, 1809 0.246739, 0.219490, 1810 0.252486, 0.212410, 1811 0.250186, 0.209263, 1812 0.245875, 0.212803, 1813 0.238977, 0.215948, 1814 0.234953, 0.216736, 1815 0.235528, 0.211624, 1816 0.233804, 0.210445, 1817 0.231504, 0.207300, 1818 0.230067, 0.200220, 1819 0.222594, 0.206905, 1820 0.211958, 0.221063, 1821 0.208509, 0.218702, 1822 0.202473, 0.215950, 1823 0.190114, 0.215950, 1824 0.184076, 0.216738, 1825 0.179766, 0.223425, 1826 0.176317, 0.219492, 1827 0.170569, 0.217919, 1828 0.165396, 0.215952, 1829 0.165396, 0.212412, 1830 0.145849, 0.211233, 1831 0.137515, 0.208481, 1832 0.124005, 0.210446, 1833 0.109633, 0.215952, 1834 0.101298, 0.214379, 1835 0.100435, 0.212414, 1836 0.097562, 0.208482, 1837 0.093538, 0.203370, 1838 0.080605, 0.203370, 1839 0.065371, 0.206515, 1840 0.053586, 0.207303, 1841 0.043527, 0.211234, 1842 0.035192, 0.212809, 1843 0.029155, 0.218314, 1844 0.031454, 0.223427, 1845 0.029155, 0.227358, 1846 0.025419, 0.225786, 1847 0.017370, 0.224606, 1848 0.013921, 0.229720, 1849 0.019095, 0.233652, 1850 0.022832, 0.230507, 1851 0.024844, 0.232867, 1852 0.019095, 0.239161, 1853 0.011048, 0.240340, 1854 0.005299, 0.242701, 1855 0.000700, 0.248600, 1856 0.000700, 0.254105, 1857 0.000987, 0.256857, 1858 0.006448, 0.260395, 1859 0.007597, 0.261968, 1860 0.008172, 0.264722, 1861 0.016507, 0.261968, 1862 0.023980, 0.258037, 1863 0.029154, 0.252922, 1864 0.030303, 0.255283, 1865 0.032029, 0.256067, 1866 0.036053, 0.253709, 1867 0.042664, 0.250955, 1868 0.046113, 0.252136, 1869 0.047262, 0.252136, 1870 0.054735, 0.253709, 1871 0.066232, 0.258821, 1872 0.069394, 0.261180, 1873 0.072556, 0.266292, 1874 0.071981, 0.285563, 1875 0.071406, 0.290676, 1876 0.073994, 0.312305, 1877 0.070257, 0.313878, 1878 0.068820, 0.320956, 1879 0.064509, 0.330001, 1880 0.058473, 0.339831, 1881 0.053874, 0.350058, 1882 0.050712, 0.357530, 1883 0.051287, 0.374048, 1884 0.054449, 0.386634, 1885 0.058473, 0.390958, 1886 0.062784, 0.397252, 1887 0.063071, 0.411412, 1888 0.065083, 0.419669, 1889 0.067382, 0.428322, 1890 0.069108, 0.433436, 1891 0.071120, 0.436974, 1892 0.072557, 0.441692, 1893 0.072845, 0.443268, 1894 0.071982, 0.434614, 1895 0.070833, 0.427929, 1896 0.069396, 0.419276, 1897 0.066810, 0.411803, 1898 0.065948, 0.403544, 1899 0.070260, 0.403544, 1900 0.073134, 0.412591, 1901 0.075145, 0.420849, 1902 0.079169, 0.432253, 1903 0.081755, 0.436186, 1904 0.086068, 0.447198, 1905 0.089229, 0.454669, 1906 0.088941, 0.460568, 1907 0.089515, 0.468041, 1908 0.093827, 0.471186, 1909 0.098714, 0.475905, 1910 0.103025, 0.479443, 1911 0.107335, 0.482983, 1912 0.111936, 0.484558, 1913 0.115096, 0.485737, 1914 0.118546, 0.486130, 1915 0.121707, 0.484558, 1916 0.125444, 0.484949, 1917 0.128893, 0.488491, 1918 0.132055, 0.492029, 1919 0.136366, 0.495174, 1920 0.140677, 0.496747, 1921 0.143552, 0.497141, 1922 0.146425, 0.497929, 1923 0.149298, 0.503040, 1924 0.152460, 0.508153, 1925 0.153322, 0.513658, 1926 0.155335, 0.518379, 1927 0.159357, 0.523095, 1928 0.163668, 0.524276, 1929 0.167118, 0.527816, 1930 0.170757, 0.529389, 1931 0.262981, 0.164030, 1932 0.280227, 0.161081, 1933 0.289281, 0.158131, 1934 0.298334, 0.152823, 1935 0.309545, 0.150463, 1936 0.320755, 0.152823, 1937 0.331963, 0.154003, 1938 0.342742, 0.155182, 1939 0.354814, 0.155182, 1940 0.368610, 0.153412, 1941 0.379390, 0.156361, 1942 0.392755, 0.156361, 1943 0.406983, 0.156361, 1944 0.418193, 0.155773, 1945 0.425521, 0.155182, 1946 0.432850, 0.158722, 1947 0.433282, 0.163441, 1948 0.424658, 0.171110, 1949 0.419053, 0.184089, 1950 0.407412, 0.188808, 1951 0.406982, 0.201196, 1952 0.403101, 0.208274, 1953 0.394479, 0.210044, 1954 0.381545, 0.213584, 1955 0.371628, 0.217713, 1956 0.365592, 0.224203, 1957 0.351795, 0.231871, 1958 0.348346, 0.240132, 1959 0.338860, 0.251932, 1960 0.332824, 0.246622, 1961 0.328081, 0.237183, 1962 0.325925, 0.225384, 1963 0.325925, 0.214766, 1964 0.334117, 0.214177, 1965 0.336705, 0.208867, 1966 0.334979, 0.198837, 1967 0.332393, 0.188810, 1968 0.327219, 0.182321, 1969 0.320321, 0.176422, 1970 0.312559, 0.174652, 1971 0.311265, 0.169932, 1972 0.322907, 0.170521, 1973 0.328081, 0.165213, 1974 0.325925, 0.161083, 1975 0.311267, 0.165802, 1976 0.300919, 0.168751, 1977 0.288848, 0.174061, 1978 0.286260, 0.178190, 1979 0.282381, 0.178190, 1980 0.275052, 0.180551, 1981 0.269878, 0.177601, 1982 0.268154, 0.176422, 1983 0.260393, 0.172291, 1984 0.260824, 0.167572, 1985 0.262969, 0.164030, 1986 0.253493, 0.190576, 1987 0.247457, 0.199426, 1988 0.252200, 0.205916, 1989 0.261685, 0.202966, 1990 0.272894, 0.209456, 1991 0.275480, 0.223614, 1992 0.269444, 0.228924, 1993 0.266426, 0.236002, 1994 0.277636, 0.243672, 1995 0.284102, 0.240134, 1996 0.284964, 0.232464, 1997 0.289708, 0.231284, 1998 0.287121, 0.222436, 1999 0.292294, 0.225385, 2000 0.294019, 0.220666, 2001 0.292294, 0.212997, 2002 0.286690, 0.205329, 2003 0.284964, 0.198250, 2004 0.275479, 0.194120, 2005 0.265131, 0.191761, 2006 0.256509, 0.194710, 2007 0.253508, 0.190576, 2008 0.157347, 0.197656, 2009 0.169420, 0.188218, 2010 0.178904, 0.189988, 2011 0.187958, 0.198836, 2012 0.196150, 0.197656, 2013 0.206066, 0.197068, 2014 0.203479, 0.208276, 2015 0.191406, 0.211816, 2016 0.184076, 0.210637, 2017 0.178471, 0.211816, 2018 0.172868, 0.211226, 2019 0.169849, 0.204736, 2020 0.168986, 0.200017, 2021 0.162519, 0.198837, 2022 0.157360, 0.197656 2023 }; 2024 2025 bool get_shape_data(ShapeData& dst, ShapeKind kind) { 2026 switch (kind) { 2027 case ShapeKind::kButterfly: 2028 dst.size = sizeof(butterfly_commands) - 1; 2029 dst.commands = butterfly_commands; 2030 dst.vertices = reinterpret_cast<const BLPoint*>(butterfly_vertices); 2031 return true; 2032 2033 case ShapeKind::kFish: 2034 dst.size = sizeof(fish_commands) - 1; 2035 dst.commands = fish_commands; 2036 dst.vertices = reinterpret_cast<const BLPoint*>(fish_vertices); 2037 return true; 2038 2039 case ShapeKind::kDragon: 2040 dst.size = sizeof(dragon_commands) - 1; 2041 dst.commands = dragon_commands; 2042 dst.vertices = reinterpret_cast<const BLPoint*>(dragon_vertices); 2043 return true; 2044 2045 case ShapeKind::kWorld: 2046 dst.size = sizeof(world_commands) - 1; 2047 dst.commands = world_commands; 2048 dst.vertices = reinterpret_cast<const BLPoint*>(world_vertices); 2049 return true; 2050 2051 default: 2052 dst = ShapeData{}; 2053 return false; 2054 } 2055 } 2056 2057 } // {blbench}