diff options
Diffstat (limited to 'static')
126 files changed, 12376 insertions, 0 deletions
diff --git a/static/.gitkeep b/static/.gitkeep new file mode 100755 index 0000000..e69de29 --- /dev/null +++ b/static/.gitkeep | |||
diff --git a/static/assets/mitjafelicijan.pgp.pub.txt b/static/assets/mitjafelicijan.pgp.pub.txt new file mode 100644 index 0000000..ee10621 --- /dev/null +++ b/static/assets/mitjafelicijan.pgp.pub.txt | |||
| @@ -0,0 +1,41 @@ | |||
| 1 | -----BEGIN PGP PUBLIC KEY BLOCK----- | ||
| 2 | |||
| 3 | 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 | ||
| 39 | IBuToBH0bKUHmWLaHUffu2H5hDrKfC3fF/Y= | ||
| 40 | =/NqR | ||
| 41 | -----END PGP PUBLIC KEY BLOCK----- | ||
diff --git a/static/assets/notes/10gui-10-finger-multitouch-user-interface.jpg b/static/assets/notes/10gui-10-finger-multitouch-user-interface.jpg new file mode 100644 index 0000000..270b4ea --- /dev/null +++ b/static/assets/notes/10gui-10-finger-multitouch-user-interface.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/notes/10gui-10-finger-multitouch-user-interface.mp4 b/static/assets/notes/10gui-10-finger-multitouch-user-interface.mp4 new file mode 100644 index 0000000..8afdbf8 --- /dev/null +++ b/static/assets/notes/10gui-10-finger-multitouch-user-interface.mp4 | |||
| Binary files differ | |||
diff --git a/static/assets/notes/60s-ibm-computers-commercial.jpg b/static/assets/notes/60s-ibm-computers-commercial.jpg new file mode 100644 index 0000000..1d49e93 --- /dev/null +++ b/static/assets/notes/60s-ibm-computers-commercial.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/notes/60s-ibm-computers-commercial.mp4 b/static/assets/notes/60s-ibm-computers-commercial.mp4 new file mode 100644 index 0000000..9ff1567 --- /dev/null +++ b/static/assets/notes/60s-ibm-computers-commercial.mp4 | |||
| Binary files differ | |||
diff --git a/static/assets/notes/9front-desktop.png b/static/assets/notes/9front-desktop.png new file mode 100644 index 0000000..3a0964b --- /dev/null +++ b/static/assets/notes/9front-desktop.png | |||
| Binary files differ | |||
diff --git a/static/assets/notes/dcss-quickstart.pdf b/static/assets/notes/dcss-quickstart.pdf new file mode 100644 index 0000000..1b70615 --- /dev/null +++ b/static/assets/notes/dcss-quickstart.pdf | |||
| Binary files differ | |||
diff --git a/static/assets/notes/dcss.jpg b/static/assets/notes/dcss.jpg new file mode 100644 index 0000000..ffe7c6a --- /dev/null +++ b/static/assets/notes/dcss.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/notes/dcss_manual.pdf b/static/assets/notes/dcss_manual.pdf new file mode 100644 index 0000000..03cafd2 --- /dev/null +++ b/static/assets/notes/dcss_manual.pdf | |||
| Binary files differ | |||
diff --git a/static/assets/notes/grep-less.png b/static/assets/notes/grep-less.png new file mode 100644 index 0000000..f69a935 --- /dev/null +++ b/static/assets/notes/grep-less.png | |||
| Binary files differ | |||
diff --git a/static/assets/notes/plan9-pixels.png b/static/assets/notes/plan9-pixels.png new file mode 100644 index 0000000..536dd82 --- /dev/null +++ b/static/assets/notes/plan9-pixels.png | |||
| Binary files differ | |||
diff --git a/static/assets/notes/plot.svg b/static/assets/notes/plot.svg new file mode 100644 index 0000000..f7cc7a4 --- /dev/null +++ b/static/assets/notes/plot.svg | |||
| @@ -0,0 +1,1546 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||
| 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||
| 3 | "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
| 4 | <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="720pt" height="288pt" viewBox="0 0 720 288" xmlns="http://www.w3.org/2000/svg" version="1.1"> | ||
| 5 | <metadata> | ||
| 6 | <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | ||
| 7 | <cc:Work> | ||
| 8 | <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> | ||
| 9 | <dc:date>2023-08-01T13:35:35.032079</dc:date> | ||
| 10 | <dc:format>image/svg+xml</dc:format> | ||
| 11 | <dc:creator> | ||
| 12 | <cc:Agent> | ||
| 13 | <dc:title>Matplotlib v3.7.2, https://matplotlib.org/</dc:title> | ||
| 14 | </cc:Agent> | ||
| 15 | </dc:creator> | ||
| 16 | </cc:Work> | ||
| 17 | </rdf:RDF> | ||
| 18 | </metadata> | ||
| 19 | <defs> | ||
| 20 | <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> | ||
| 21 | </defs> | ||
| 22 | <g id="figure_1"> | ||
| 23 | <g id="patch_1"> | ||
| 24 | <path d="M 0 288 | ||
| 25 | L 720 288 | ||
| 26 | L 720 0 | ||
| 27 | L 0 0 | ||
| 28 | z | ||
| 29 | " style="fill: #ffffff"/> | ||
| 30 | </g> | ||
| 31 | <g id="axes_1"> | ||
| 32 | <g id="patch_2"> | ||
| 33 | <path d="M 90 256.32 | ||
| 34 | L 648 256.32 | ||
| 35 | L 648 34.56 | ||
| 36 | L 90 34.56 | ||
| 37 | z | ||
| 38 | " style="fill: #ffffff"/> | ||
| 39 | </g> | ||
| 40 | <g id="matplotlib.axis_1"> | ||
| 41 | <g id="xtick_1"> | ||
| 42 | <g id="line2d_1"> | ||
| 43 | <defs> | ||
| 44 | <path id="m9d8e166088" d="M 0 0 | ||
| 45 | L 0 3.5 | ||
| 46 | " style="stroke: #000000; stroke-width: 0.8"/> | ||
| 47 | </defs> | ||
| 48 | <g> | ||
| 49 | <use xlink:href="#m9d8e166088" x="110.239669" y="256.32" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 50 | </g> | ||
| 51 | </g> | ||
| 52 | <g id="text_1"> | ||
| 53 | <!-- 0 --> | ||
| 54 | <g transform="translate(107.058419 270.918437) scale(0.1 -0.1)"> | ||
| 55 | <defs> | ||
| 56 | <path id="DejaVuSans-30" d="M 2034 4250 | ||
| 57 | Q 1547 4250 1301 3770 | ||
| 58 | Q 1056 3291 1056 2328 | ||
| 59 | Q 1056 1369 1301 889 | ||
| 60 | Q 1547 409 2034 409 | ||
| 61 | Q 2525 409 2770 889 | ||
| 62 | Q 3016 1369 3016 2328 | ||
| 63 | Q 3016 3291 2770 3770 | ||
| 64 | Q 2525 4250 2034 4250 | ||
| 65 | z | ||
| 66 | M 2034 4750 | ||
| 67 | Q 2819 4750 3233 4129 | ||
| 68 | Q 3647 3509 3647 2328 | ||
| 69 | Q 3647 1150 3233 529 | ||
| 70 | Q 2819 -91 2034 -91 | ||
| 71 | Q 1250 -91 836 529 | ||
| 72 | Q 422 1150 422 2328 | ||
| 73 | Q 422 3509 836 4129 | ||
| 74 | Q 1250 4750 2034 4750 | ||
| 75 | z | ||
| 76 | " transform="scale(0.015625)"/> | ||
| 77 | </defs> | ||
| 78 | <use xlink:href="#DejaVuSans-30"/> | ||
| 79 | </g> | ||
| 80 | </g> | ||
| 81 | </g> | ||
| 82 | <g id="xtick_2"> | ||
| 83 | <g id="line2d_2"> | ||
| 84 | <g> | ||
| 85 | <use xlink:href="#m9d8e166088" x="212.719008" y="256.32" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 86 | </g> | ||
| 87 | </g> | ||
| 88 | <g id="text_2"> | ||
| 89 | <!-- 20 --> | ||
| 90 | <g transform="translate(206.356508 270.918437) scale(0.1 -0.1)"> | ||
| 91 | <defs> | ||
| 92 | <path id="DejaVuSans-32" d="M 1228 531 | ||
| 93 | L 3431 531 | ||
| 94 | L 3431 0 | ||
| 95 | L 469 0 | ||
| 96 | L 469 531 | ||
| 97 | Q 828 903 1448 1529 | ||
| 98 | Q 2069 2156 2228 2338 | ||
| 99 | Q 2531 2678 2651 2914 | ||
| 100 | Q 2772 3150 2772 3378 | ||
| 101 | Q 2772 3750 2511 3984 | ||
| 102 | Q 2250 4219 1831 4219 | ||
| 103 | Q 1534 4219 1204 4116 | ||
| 104 | Q 875 4013 500 3803 | ||
| 105 | L 500 4441 | ||
| 106 | Q 881 4594 1212 4672 | ||
| 107 | Q 1544 4750 1819 4750 | ||
| 108 | Q 2544 4750 2975 4387 | ||
| 109 | Q 3406 4025 3406 3419 | ||
| 110 | Q 3406 3131 3298 2873 | ||
| 111 | Q 3191 2616 2906 2266 | ||
| 112 | Q 2828 2175 2409 1742 | ||
| 113 | Q 1991 1309 1228 531 | ||
| 114 | z | ||
| 115 | " transform="scale(0.015625)"/> | ||
| 116 | </defs> | ||
| 117 | <use xlink:href="#DejaVuSans-32"/> | ||
| 118 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 119 | </g> | ||
| 120 | </g> | ||
| 121 | </g> | ||
| 122 | <g id="xtick_3"> | ||
| 123 | <g id="line2d_3"> | ||
| 124 | <g> | ||
| 125 | <use xlink:href="#m9d8e166088" x="315.198347" y="256.32" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 126 | </g> | ||
| 127 | </g> | ||
| 128 | <g id="text_3"> | ||
| 129 | <!-- 40 --> | ||
| 130 | <g transform="translate(308.835847 270.918437) scale(0.1 -0.1)"> | ||
| 131 | <defs> | ||
| 132 | <path id="DejaVuSans-34" d="M 2419 4116 | ||
| 133 | L 825 1625 | ||
| 134 | L 2419 1625 | ||
| 135 | L 2419 4116 | ||
| 136 | z | ||
| 137 | M 2253 4666 | ||
| 138 | L 3047 4666 | ||
| 139 | L 3047 1625 | ||
| 140 | L 3713 1625 | ||
| 141 | L 3713 1100 | ||
| 142 | L 3047 1100 | ||
| 143 | L 3047 0 | ||
| 144 | L 2419 0 | ||
| 145 | L 2419 1100 | ||
| 146 | L 313 1100 | ||
| 147 | L 313 1709 | ||
| 148 | L 2253 4666 | ||
| 149 | z | ||
| 150 | " transform="scale(0.015625)"/> | ||
| 151 | </defs> | ||
| 152 | <use xlink:href="#DejaVuSans-34"/> | ||
| 153 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 154 | </g> | ||
| 155 | </g> | ||
| 156 | </g> | ||
| 157 | <g id="xtick_4"> | ||
| 158 | <g id="line2d_4"> | ||
| 159 | <g> | ||
| 160 | <use xlink:href="#m9d8e166088" x="417.677686" y="256.32" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 161 | </g> | ||
| 162 | </g> | ||
| 163 | <g id="text_4"> | ||
| 164 | <!-- 60 --> | ||
| 165 | <g transform="translate(411.315186 270.918437) scale(0.1 -0.1)"> | ||
| 166 | <defs> | ||
| 167 | <path id="DejaVuSans-36" d="M 2113 2584 | ||
| 168 | Q 1688 2584 1439 2293 | ||
| 169 | Q 1191 2003 1191 1497 | ||
| 170 | Q 1191 994 1439 701 | ||
| 171 | Q 1688 409 2113 409 | ||
| 172 | Q 2538 409 2786 701 | ||
| 173 | Q 3034 994 3034 1497 | ||
| 174 | Q 3034 2003 2786 2293 | ||
| 175 | Q 2538 2584 2113 2584 | ||
| 176 | z | ||
| 177 | M 3366 4563 | ||
| 178 | L 3366 3988 | ||
| 179 | Q 3128 4100 2886 4159 | ||
| 180 | Q 2644 4219 2406 4219 | ||
| 181 | Q 1781 4219 1451 3797 | ||
| 182 | Q 1122 3375 1075 2522 | ||
| 183 | Q 1259 2794 1537 2939 | ||
| 184 | Q 1816 3084 2150 3084 | ||
| 185 | Q 2853 3084 3261 2657 | ||
| 186 | Q 3669 2231 3669 1497 | ||
| 187 | Q 3669 778 3244 343 | ||
| 188 | Q 2819 -91 2113 -91 | ||
| 189 | Q 1303 -91 875 529 | ||
| 190 | Q 447 1150 447 2328 | ||
| 191 | Q 447 3434 972 4092 | ||
| 192 | Q 1497 4750 2381 4750 | ||
| 193 | Q 2619 4750 2861 4703 | ||
| 194 | Q 3103 4656 3366 4563 | ||
| 195 | z | ||
| 196 | " transform="scale(0.015625)"/> | ||
| 197 | </defs> | ||
| 198 | <use xlink:href="#DejaVuSans-36"/> | ||
| 199 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 200 | </g> | ||
| 201 | </g> | ||
| 202 | </g> | ||
| 203 | <g id="xtick_5"> | ||
| 204 | <g id="line2d_5"> | ||
| 205 | <g> | ||
| 206 | <use xlink:href="#m9d8e166088" x="520.157025" y="256.32" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 207 | </g> | ||
| 208 | </g> | ||
| 209 | <g id="text_5"> | ||
| 210 | <!-- 80 --> | ||
| 211 | <g transform="translate(513.794525 270.918437) scale(0.1 -0.1)"> | ||
| 212 | <defs> | ||
| 213 | <path id="DejaVuSans-38" d="M 2034 2216 | ||
| 214 | Q 1584 2216 1326 1975 | ||
| 215 | Q 1069 1734 1069 1313 | ||
| 216 | Q 1069 891 1326 650 | ||
| 217 | Q 1584 409 2034 409 | ||
| 218 | Q 2484 409 2743 651 | ||
| 219 | Q 3003 894 3003 1313 | ||
| 220 | Q 3003 1734 2745 1975 | ||
| 221 | Q 2488 2216 2034 2216 | ||
| 222 | z | ||
| 223 | M 1403 2484 | ||
| 224 | Q 997 2584 770 2862 | ||
| 225 | Q 544 3141 544 3541 | ||
| 226 | Q 544 4100 942 4425 | ||
| 227 | Q 1341 4750 2034 4750 | ||
| 228 | Q 2731 4750 3128 4425 | ||
| 229 | Q 3525 4100 3525 3541 | ||
| 230 | Q 3525 3141 3298 2862 | ||
| 231 | Q 3072 2584 2669 2484 | ||
| 232 | Q 3125 2378 3379 2068 | ||
| 233 | Q 3634 1759 3634 1313 | ||
| 234 | Q 3634 634 3220 271 | ||
| 235 | Q 2806 -91 2034 -91 | ||
| 236 | Q 1263 -91 848 271 | ||
| 237 | Q 434 634 434 1313 | ||
| 238 | Q 434 1759 690 2068 | ||
| 239 | Q 947 2378 1403 2484 | ||
| 240 | z | ||
| 241 | M 1172 3481 | ||
| 242 | Q 1172 3119 1398 2916 | ||
| 243 | Q 1625 2713 2034 2713 | ||
| 244 | Q 2441 2713 2670 2916 | ||
| 245 | Q 2900 3119 2900 3481 | ||
| 246 | Q 2900 3844 2670 4047 | ||
| 247 | Q 2441 4250 2034 4250 | ||
| 248 | Q 1625 4250 1398 4047 | ||
| 249 | Q 1172 3844 1172 3481 | ||
| 250 | z | ||
| 251 | " transform="scale(0.015625)"/> | ||
| 252 | </defs> | ||
| 253 | <use xlink:href="#DejaVuSans-38"/> | ||
| 254 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 255 | </g> | ||
| 256 | </g> | ||
| 257 | </g> | ||
| 258 | <g id="xtick_6"> | ||
| 259 | <g id="line2d_6"> | ||
| 260 | <g> | ||
| 261 | <use xlink:href="#m9d8e166088" x="622.636364" y="256.32" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 262 | </g> | ||
| 263 | </g> | ||
| 264 | <g id="text_6"> | ||
| 265 | <!-- 100 --> | ||
| 266 | <g transform="translate(613.092614 270.918437) scale(0.1 -0.1)"> | ||
| 267 | <defs> | ||
| 268 | <path id="DejaVuSans-31" d="M 794 531 | ||
| 269 | L 1825 531 | ||
| 270 | L 1825 4091 | ||
| 271 | L 703 3866 | ||
| 272 | L 703 4441 | ||
| 273 | L 1819 4666 | ||
| 274 | L 2450 4666 | ||
| 275 | L 2450 531 | ||
| 276 | L 3481 531 | ||
| 277 | L 3481 0 | ||
| 278 | L 794 0 | ||
| 279 | L 794 531 | ||
| 280 | z | ||
| 281 | " transform="scale(0.015625)"/> | ||
| 282 | </defs> | ||
| 283 | <use xlink:href="#DejaVuSans-31"/> | ||
| 284 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 285 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 286 | </g> | ||
| 287 | </g> | ||
| 288 | </g> | ||
| 289 | <g id="text_7"> | ||
| 290 | <!-- Epoch --> | ||
| 291 | <g transform="translate(353.689062 284.596563) scale(0.1 -0.1)"> | ||
| 292 | <defs> | ||
| 293 | <path id="DejaVuSans-Oblique-45" d="M 1081 4666 | ||
| 294 | L 4031 4666 | ||
| 295 | L 3928 4134 | ||
| 296 | L 1606 4134 | ||
| 297 | L 1338 2753 | ||
| 298 | L 3566 2753 | ||
| 299 | L 3463 2222 | ||
| 300 | L 1234 2222 | ||
| 301 | L 909 531 | ||
| 302 | L 3284 531 | ||
| 303 | L 3181 0 | ||
| 304 | L 172 0 | ||
| 305 | L 1081 4666 | ||
| 306 | z | ||
| 307 | " transform="scale(0.015625)"/> | ||
| 308 | <path id="DejaVuSans-Oblique-70" d="M 3175 2156 | ||
| 309 | Q 3175 2616 2975 2859 | ||
| 310 | Q 2775 3103 2400 3103 | ||
| 311 | Q 2144 3103 1911 2972 | ||
| 312 | Q 1678 2841 1497 2591 | ||
| 313 | Q 1319 2344 1212 1994 | ||
| 314 | Q 1106 1644 1106 1300 | ||
| 315 | Q 1106 863 1306 627 | ||
| 316 | Q 1506 391 1875 391 | ||
| 317 | Q 2147 391 2380 519 | ||
| 318 | Q 2613 647 2778 891 | ||
| 319 | Q 2956 1147 3065 1494 | ||
| 320 | Q 3175 1841 3175 2156 | ||
| 321 | z | ||
| 322 | M 1394 2969 | ||
| 323 | Q 1625 3272 1939 3428 | ||
| 324 | Q 2253 3584 2638 3584 | ||
| 325 | Q 3175 3584 3472 3232 | ||
| 326 | Q 3769 2881 3769 2247 | ||
| 327 | Q 3769 1728 3584 1258 | ||
| 328 | Q 3400 788 3053 416 | ||
| 329 | Q 2822 169 2531 39 | ||
| 330 | Q 2241 -91 1919 -91 | ||
| 331 | Q 1547 -91 1294 64 | ||
| 332 | Q 1041 219 916 525 | ||
| 333 | L 556 -1331 | ||
| 334 | L -19 -1331 | ||
| 335 | L 922 3500 | ||
| 336 | L 1497 3500 | ||
| 337 | L 1394 2969 | ||
| 338 | z | ||
| 339 | " transform="scale(0.015625)"/> | ||
| 340 | <path id="DejaVuSans-Oblique-6f" d="M 1625 -91 | ||
| 341 | Q 1009 -91 651 289 | ||
| 342 | Q 294 669 294 1325 | ||
| 343 | Q 294 1706 417 2101 | ||
| 344 | Q 541 2497 738 2766 | ||
| 345 | Q 1047 3184 1428 3384 | ||
| 346 | Q 1809 3584 2291 3584 | ||
| 347 | Q 2888 3584 3255 3212 | ||
| 348 | Q 3622 2841 3622 2241 | ||
| 349 | Q 3622 1825 3500 1412 | ||
| 350 | Q 3378 1000 3181 728 | ||
| 351 | Q 2875 309 2494 109 | ||
| 352 | Q 2113 -91 1625 -91 | ||
| 353 | z | ||
| 354 | M 891 1344 | ||
| 355 | Q 891 869 1089 633 | ||
| 356 | Q 1288 397 1691 397 | ||
| 357 | Q 2269 397 2648 901 | ||
| 358 | Q 3028 1406 3028 2181 | ||
| 359 | Q 3028 2634 2825 2865 | ||
| 360 | Q 2622 3097 2228 3097 | ||
| 361 | Q 1903 3097 1650 2945 | ||
| 362 | Q 1397 2794 1197 2484 | ||
| 363 | Q 1050 2253 970 1956 | ||
| 364 | Q 891 1659 891 1344 | ||
| 365 | z | ||
| 366 | " transform="scale(0.015625)"/> | ||
| 367 | <path id="DejaVuSans-Oblique-63" d="M 3431 3366 | ||
| 368 | L 3316 2797 | ||
| 369 | Q 3109 2947 2876 3022 | ||
| 370 | Q 2644 3097 2394 3097 | ||
| 371 | Q 2119 3097 1870 3000 | ||
| 372 | Q 1622 2903 1453 2725 | ||
| 373 | Q 1184 2453 1037 2087 | ||
| 374 | Q 891 1722 891 1331 | ||
| 375 | Q 891 859 1127 628 | ||
| 376 | Q 1363 397 1844 397 | ||
| 377 | Q 2081 397 2348 469 | ||
| 378 | Q 2616 541 2906 684 | ||
| 379 | L 2797 116 | ||
| 380 | Q 2547 13 2283 -39 | ||
| 381 | Q 2019 -91 1741 -91 | ||
| 382 | Q 1044 -91 669 257 | ||
| 383 | Q 294 606 294 1253 | ||
| 384 | Q 294 1797 489 2255 | ||
| 385 | Q 684 2713 1069 3078 | ||
| 386 | Q 1331 3328 1684 3456 | ||
| 387 | Q 2038 3584 2456 3584 | ||
| 388 | Q 2700 3584 2940 3529 | ||
| 389 | Q 3181 3475 3431 3366 | ||
| 390 | z | ||
| 391 | " transform="scale(0.015625)"/> | ||
| 392 | <path id="DejaVuSans-Oblique-68" d="M 3566 2113 | ||
| 393 | L 3156 0 | ||
| 394 | L 2578 0 | ||
| 395 | L 2988 2091 | ||
| 396 | Q 3016 2238 3031 2350 | ||
| 397 | Q 3047 2463 3047 2528 | ||
| 398 | Q 3047 2791 2881 2937 | ||
| 399 | Q 2716 3084 2419 3084 | ||
| 400 | Q 1956 3084 1617 2771 | ||
| 401 | Q 1278 2459 1178 1941 | ||
| 402 | L 800 0 | ||
| 403 | L 225 0 | ||
| 404 | L 1172 4863 | ||
| 405 | L 1747 4863 | ||
| 406 | L 1375 2950 | ||
| 407 | Q 1594 3244 1934 3414 | ||
| 408 | Q 2275 3584 2650 3584 | ||
| 409 | Q 3113 3584 3367 3334 | ||
| 410 | Q 3622 3084 3622 2631 | ||
| 411 | Q 3622 2519 3608 2391 | ||
| 412 | Q 3594 2263 3566 2113 | ||
| 413 | z | ||
| 414 | " transform="scale(0.015625)"/> | ||
| 415 | </defs> | ||
| 416 | <use xlink:href="#DejaVuSans-Oblique-45"/> | ||
| 417 | <use xlink:href="#DejaVuSans-Oblique-70" x="63.183594"/> | ||
| 418 | <use xlink:href="#DejaVuSans-Oblique-6f" x="126.660156"/> | ||
| 419 | <use xlink:href="#DejaVuSans-Oblique-63" x="187.841797"/> | ||
| 420 | <use xlink:href="#DejaVuSans-Oblique-68" x="242.822266"/> | ||
| 421 | </g> | ||
| 422 | </g> | ||
| 423 | </g> | ||
| 424 | <g id="matplotlib.axis_2"> | ||
| 425 | <g id="ytick_1"> | ||
| 426 | <g id="line2d_7"> | ||
| 427 | <defs> | ||
| 428 | <path id="m1516ce9edd" d="M 0 0 | ||
| 429 | L -3.5 0 | ||
| 430 | " style="stroke: #000000; stroke-width: 0.8"/> | ||
| 431 | </defs> | ||
| 432 | <g> | ||
| 433 | <use xlink:href="#m1516ce9edd" x="90" y="249.291243" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 434 | </g> | ||
| 435 | </g> | ||
| 436 | <g id="text_8"> | ||
| 437 | <!-- 0 --> | ||
| 438 | <g transform="translate(76.6375 253.090462) scale(0.1 -0.1)"> | ||
| 439 | <use xlink:href="#DejaVuSans-30"/> | ||
| 440 | </g> | ||
| 441 | </g> | ||
| 442 | </g> | ||
| 443 | <g id="ytick_2"> | ||
| 444 | <g id="line2d_8"> | ||
| 445 | <g> | ||
| 446 | <use xlink:href="#m1516ce9edd" x="90" y="222.048" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 447 | </g> | ||
| 448 | </g> | ||
| 449 | <g id="text_9"> | ||
| 450 | <!-- 25 --> | ||
| 451 | <g transform="translate(70.275 225.847219) scale(0.1 -0.1)"> | ||
| 452 | <defs> | ||
| 453 | <path id="DejaVuSans-35" d="M 691 4666 | ||
| 454 | L 3169 4666 | ||
| 455 | L 3169 4134 | ||
| 456 | L 1269 4134 | ||
| 457 | L 1269 2991 | ||
| 458 | Q 1406 3038 1543 3061 | ||
| 459 | Q 1681 3084 1819 3084 | ||
| 460 | Q 2600 3084 3056 2656 | ||
| 461 | Q 3513 2228 3513 1497 | ||
| 462 | Q 3513 744 3044 326 | ||
| 463 | Q 2575 -91 1722 -91 | ||
| 464 | Q 1428 -91 1123 -41 | ||
| 465 | Q 819 9 494 109 | ||
| 466 | L 494 744 | ||
| 467 | Q 775 591 1075 516 | ||
| 468 | Q 1375 441 1709 441 | ||
| 469 | Q 2250 441 2565 725 | ||
| 470 | Q 2881 1009 2881 1497 | ||
| 471 | Q 2881 1984 2565 2268 | ||
| 472 | Q 2250 2553 1709 2553 | ||
| 473 | Q 1456 2553 1204 2497 | ||
| 474 | Q 953 2441 691 2322 | ||
| 475 | L 691 4666 | ||
| 476 | z | ||
| 477 | " transform="scale(0.015625)"/> | ||
| 478 | </defs> | ||
| 479 | <use xlink:href="#DejaVuSans-32"/> | ||
| 480 | <use xlink:href="#DejaVuSans-35" x="63.623047"/> | ||
| 481 | </g> | ||
| 482 | </g> | ||
| 483 | </g> | ||
| 484 | <g id="ytick_3"> | ||
| 485 | <g id="line2d_9"> | ||
| 486 | <g> | ||
| 487 | <use xlink:href="#m1516ce9edd" x="90" y="194.804757" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 488 | </g> | ||
| 489 | </g> | ||
| 490 | <g id="text_10"> | ||
| 491 | <!-- 50 --> | ||
| 492 | <g transform="translate(70.275 198.603976) scale(0.1 -0.1)"> | ||
| 493 | <use xlink:href="#DejaVuSans-35"/> | ||
| 494 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 495 | </g> | ||
| 496 | </g> | ||
| 497 | </g> | ||
| 498 | <g id="ytick_4"> | ||
| 499 | <g id="line2d_10"> | ||
| 500 | <g> | ||
| 501 | <use xlink:href="#m1516ce9edd" x="90" y="167.561514" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 502 | </g> | ||
| 503 | </g> | ||
| 504 | <g id="text_11"> | ||
| 505 | <!-- 75 --> | ||
| 506 | <g transform="translate(70.275 171.360732) scale(0.1 -0.1)"> | ||
| 507 | <defs> | ||
| 508 | <path id="DejaVuSans-37" d="M 525 4666 | ||
| 509 | L 3525 4666 | ||
| 510 | L 3525 4397 | ||
| 511 | L 1831 0 | ||
| 512 | L 1172 0 | ||
| 513 | L 2766 4134 | ||
| 514 | L 525 4134 | ||
| 515 | L 525 4666 | ||
| 516 | z | ||
| 517 | " transform="scale(0.015625)"/> | ||
| 518 | </defs> | ||
| 519 | <use xlink:href="#DejaVuSans-37"/> | ||
| 520 | <use xlink:href="#DejaVuSans-35" x="63.623047"/> | ||
| 521 | </g> | ||
| 522 | </g> | ||
| 523 | </g> | ||
| 524 | <g id="ytick_5"> | ||
| 525 | <g id="line2d_11"> | ||
| 526 | <g> | ||
| 527 | <use xlink:href="#m1516ce9edd" x="90" y="140.31827" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 528 | </g> | ||
| 529 | </g> | ||
| 530 | <g id="text_12"> | ||
| 531 | <!-- 100 --> | ||
| 532 | <g transform="translate(63.9125 144.117489) scale(0.1 -0.1)"> | ||
| 533 | <use xlink:href="#DejaVuSans-31"/> | ||
| 534 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 535 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 536 | </g> | ||
| 537 | </g> | ||
| 538 | </g> | ||
| 539 | <g id="ytick_6"> | ||
| 540 | <g id="line2d_12"> | ||
| 541 | <g> | ||
| 542 | <use xlink:href="#m1516ce9edd" x="90" y="113.075027" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 543 | </g> | ||
| 544 | </g> | ||
| 545 | <g id="text_13"> | ||
| 546 | <!-- 125 --> | ||
| 547 | <g transform="translate(63.9125 116.874246) scale(0.1 -0.1)"> | ||
| 548 | <use xlink:href="#DejaVuSans-31"/> | ||
| 549 | <use xlink:href="#DejaVuSans-32" x="63.623047"/> | ||
| 550 | <use xlink:href="#DejaVuSans-35" x="127.246094"/> | ||
| 551 | </g> | ||
| 552 | </g> | ||
| 553 | </g> | ||
| 554 | <g id="ytick_7"> | ||
| 555 | <g id="line2d_13"> | ||
| 556 | <g> | ||
| 557 | <use xlink:href="#m1516ce9edd" x="90" y="85.831784" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 558 | </g> | ||
| 559 | </g> | ||
| 560 | <g id="text_14"> | ||
| 561 | <!-- 150 --> | ||
| 562 | <g transform="translate(63.9125 89.631003) scale(0.1 -0.1)"> | ||
| 563 | <use xlink:href="#DejaVuSans-31"/> | ||
| 564 | <use xlink:href="#DejaVuSans-35" x="63.623047"/> | ||
| 565 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 566 | </g> | ||
| 567 | </g> | ||
| 568 | </g> | ||
| 569 | <g id="ytick_8"> | ||
| 570 | <g id="line2d_14"> | ||
| 571 | <g> | ||
| 572 | <use xlink:href="#m1516ce9edd" x="90" y="58.588541" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 573 | </g> | ||
| 574 | </g> | ||
| 575 | <g id="text_15"> | ||
| 576 | <!-- 175 --> | ||
| 577 | <g transform="translate(63.9125 62.387759) scale(0.1 -0.1)"> | ||
| 578 | <use xlink:href="#DejaVuSans-31"/> | ||
| 579 | <use xlink:href="#DejaVuSans-37" x="63.623047"/> | ||
| 580 | <use xlink:href="#DejaVuSans-35" x="127.246094"/> | ||
| 581 | </g> | ||
| 582 | </g> | ||
| 583 | </g> | ||
| 584 | <g id="text_16"> | ||
| 585 | <!-- Median value (ms) --> | ||
| 586 | <g transform="translate(57.832812 191.839219) rotate(-90) scale(0.1 -0.1)"> | ||
| 587 | <defs> | ||
| 588 | <path id="DejaVuSans-Oblique-4d" d="M 1081 4666 | ||
| 589 | L 2028 4666 | ||
| 590 | L 2572 1522 | ||
| 591 | L 4378 4666 | ||
| 592 | L 5350 4666 | ||
| 593 | L 4441 0 | ||
| 594 | L 3828 0 | ||
| 595 | L 4622 4091 | ||
| 596 | L 2791 897 | ||
| 597 | L 2175 897 | ||
| 598 | L 1581 4103 | ||
| 599 | L 788 0 | ||
| 600 | L 172 0 | ||
| 601 | L 1081 4666 | ||
| 602 | z | ||
| 603 | " transform="scale(0.015625)"/> | ||
| 604 | <path id="DejaVuSans-Oblique-65" d="M 3078 2063 | ||
| 605 | Q 3088 2113 3092 2166 | ||
| 606 | Q 3097 2219 3097 2272 | ||
| 607 | Q 3097 2653 2873 2875 | ||
| 608 | Q 2650 3097 2266 3097 | ||
| 609 | Q 1838 3097 1509 2826 | ||
| 610 | Q 1181 2556 1013 2059 | ||
| 611 | L 3078 2063 | ||
| 612 | z | ||
| 613 | M 3578 1613 | ||
| 614 | L 903 1613 | ||
| 615 | Q 884 1494 878 1425 | ||
| 616 | Q 872 1356 872 1306 | ||
| 617 | Q 872 872 1139 634 | ||
| 618 | Q 1406 397 1894 397 | ||
| 619 | Q 2269 397 2603 481 | ||
| 620 | Q 2938 566 3225 728 | ||
| 621 | L 3116 159 | ||
| 622 | Q 2806 34 2476 -28 | ||
| 623 | Q 2147 -91 1806 -91 | ||
| 624 | Q 1078 -91 686 257 | ||
| 625 | Q 294 606 294 1247 | ||
| 626 | Q 294 1794 489 2264 | ||
| 627 | Q 684 2734 1063 3103 | ||
| 628 | Q 1306 3334 1642 3459 | ||
| 629 | Q 1978 3584 2356 3584 | ||
| 630 | Q 2950 3584 3301 3228 | ||
| 631 | Q 3653 2872 3653 2272 | ||
| 632 | Q 3653 2128 3634 1964 | ||
| 633 | Q 3616 1800 3578 1613 | ||
| 634 | z | ||
| 635 | " transform="scale(0.015625)"/> | ||
| 636 | <path id="DejaVuSans-Oblique-64" d="M 2675 525 | ||
| 637 | Q 2444 222 2128 65 | ||
| 638 | Q 1813 -91 1428 -91 | ||
| 639 | Q 903 -91 598 267 | ||
| 640 | Q 294 625 294 1247 | ||
| 641 | Q 294 1766 478 2236 | ||
| 642 | Q 663 2706 1013 3078 | ||
| 643 | Q 1244 3325 1534 3454 | ||
| 644 | Q 1825 3584 2144 3584 | ||
| 645 | Q 2481 3584 2739 3421 | ||
| 646 | Q 2997 3259 3138 2956 | ||
| 647 | L 3513 4863 | ||
| 648 | L 4091 4863 | ||
| 649 | L 3144 0 | ||
| 650 | L 2566 0 | ||
| 651 | L 2675 525 | ||
| 652 | z | ||
| 653 | M 891 1350 | ||
| 654 | Q 891 897 1095 644 | ||
| 655 | Q 1300 391 1663 391 | ||
| 656 | Q 1931 391 2161 520 | ||
| 657 | Q 2391 650 2566 903 | ||
| 658 | Q 2750 1166 2856 1509 | ||
| 659 | Q 2963 1853 2963 2188 | ||
| 660 | Q 2963 2622 2758 2865 | ||
| 661 | Q 2553 3109 2194 3109 | ||
| 662 | Q 1922 3109 1687 2981 | ||
| 663 | Q 1453 2853 1288 2613 | ||
| 664 | Q 1106 2353 998 2009 | ||
| 665 | Q 891 1666 891 1350 | ||
| 666 | z | ||
| 667 | " transform="scale(0.015625)"/> | ||
| 668 | <path id="DejaVuSans-Oblique-69" d="M 1172 4863 | ||
| 669 | L 1747 4863 | ||
| 670 | L 1606 4134 | ||
| 671 | L 1031 4134 | ||
| 672 | L 1172 4863 | ||
| 673 | z | ||
| 674 | M 909 3500 | ||
| 675 | L 1484 3500 | ||
| 676 | L 800 0 | ||
| 677 | L 225 0 | ||
| 678 | L 909 3500 | ||
| 679 | z | ||
| 680 | " transform="scale(0.015625)"/> | ||
| 681 | <path id="DejaVuSans-Oblique-61" d="M 3438 1997 | ||
| 682 | L 3047 0 | ||
| 683 | L 2472 0 | ||
| 684 | L 2578 531 | ||
| 685 | Q 2325 219 2001 64 | ||
| 686 | Q 1678 -91 1281 -91 | ||
| 687 | Q 834 -91 548 182 | ||
| 688 | Q 263 456 263 884 | ||
| 689 | Q 263 1497 752 1853 | ||
| 690 | Q 1241 2209 2100 2209 | ||
| 691 | L 2900 2209 | ||
| 692 | L 2931 2363 | ||
| 693 | Q 2938 2388 2941 2417 | ||
| 694 | Q 2944 2447 2944 2509 | ||
| 695 | Q 2944 2788 2717 2942 | ||
| 696 | Q 2491 3097 2081 3097 | ||
| 697 | Q 1800 3097 1504 3025 | ||
| 698 | Q 1209 2953 897 2809 | ||
| 699 | L 997 3341 | ||
| 700 | Q 1322 3463 1633 3523 | ||
| 701 | Q 1944 3584 2234 3584 | ||
| 702 | Q 2853 3584 3176 3315 | ||
| 703 | Q 3500 3047 3500 2534 | ||
| 704 | Q 3500 2431 3484 2292 | ||
| 705 | Q 3469 2153 3438 1997 | ||
| 706 | z | ||
| 707 | M 2816 1759 | ||
| 708 | L 2241 1759 | ||
| 709 | Q 1534 1759 1195 1570 | ||
| 710 | Q 856 1381 856 984 | ||
| 711 | Q 856 709 1029 553 | ||
| 712 | Q 1203 397 1509 397 | ||
| 713 | Q 1978 397 2328 733 | ||
| 714 | Q 2678 1069 2791 1631 | ||
| 715 | L 2816 1759 | ||
| 716 | z | ||
| 717 | " transform="scale(0.015625)"/> | ||
| 718 | <path id="DejaVuSans-Oblique-6e" d="M 3566 2113 | ||
| 719 | L 3156 0 | ||
| 720 | L 2578 0 | ||
| 721 | L 2988 2091 | ||
| 722 | Q 3016 2238 3031 2350 | ||
| 723 | Q 3047 2463 3047 2528 | ||
| 724 | Q 3047 2791 2881 2937 | ||
| 725 | Q 2716 3084 2419 3084 | ||
| 726 | Q 1956 3084 1622 2776 | ||
| 727 | Q 1288 2469 1184 1941 | ||
| 728 | L 800 0 | ||
| 729 | L 225 0 | ||
| 730 | L 903 3500 | ||
| 731 | L 1478 3500 | ||
| 732 | L 1363 2950 | ||
| 733 | Q 1603 3253 1940 3418 | ||
| 734 | Q 2278 3584 2650 3584 | ||
| 735 | Q 3113 3584 3367 3334 | ||
| 736 | Q 3622 3084 3622 2631 | ||
| 737 | Q 3622 2519 3608 2391 | ||
| 738 | Q 3594 2263 3566 2113 | ||
| 739 | z | ||
| 740 | " transform="scale(0.015625)"/> | ||
| 741 | <path id="DejaVuSans-Oblique-20" transform="scale(0.015625)"/> | ||
| 742 | <path id="DejaVuSans-Oblique-76" d="M 459 3500 | ||
| 743 | L 1069 3500 | ||
| 744 | L 1581 525 | ||
| 745 | L 3256 3500 | ||
| 746 | L 3866 3500 | ||
| 747 | L 1875 0 | ||
| 748 | L 1100 0 | ||
| 749 | L 459 3500 | ||
| 750 | z | ||
| 751 | " transform="scale(0.015625)"/> | ||
| 752 | <path id="DejaVuSans-Oblique-6c" d="M 1172 4863 | ||
| 753 | L 1747 4863 | ||
| 754 | L 800 0 | ||
| 755 | L 225 0 | ||
| 756 | L 1172 4863 | ||
| 757 | z | ||
| 758 | " transform="scale(0.015625)"/> | ||
| 759 | <path id="DejaVuSans-Oblique-75" d="M 428 1388 | ||
| 760 | L 838 3500 | ||
| 761 | L 1416 3500 | ||
| 762 | L 1006 1409 | ||
| 763 | Q 975 1256 961 1147 | ||
| 764 | Q 947 1038 947 966 | ||
| 765 | Q 947 700 1109 554 | ||
| 766 | Q 1272 409 1569 409 | ||
| 767 | Q 2031 409 2368 721 | ||
| 768 | Q 2706 1034 2809 1563 | ||
| 769 | L 3194 3500 | ||
| 770 | L 3769 3500 | ||
| 771 | L 3091 0 | ||
| 772 | L 2516 0 | ||
| 773 | L 2631 550 | ||
| 774 | Q 2388 244 2052 76 | ||
| 775 | Q 1716 -91 1338 -91 | ||
| 776 | Q 878 -91 622 161 | ||
| 777 | Q 366 413 366 863 | ||
| 778 | Q 366 956 381 1097 | ||
| 779 | Q 397 1238 428 1388 | ||
| 780 | z | ||
| 781 | " transform="scale(0.015625)"/> | ||
| 782 | <path id="DejaVuSans-Oblique-28" d="M 2731 4856 | ||
| 783 | Q 1903 3822 1495 2892 | ||
| 784 | Q 1088 1963 1088 1100 | ||
| 785 | Q 1088 606 1206 120 | ||
| 786 | Q 1325 -366 1563 -844 | ||
| 787 | L 1063 -844 | ||
| 788 | Q 775 -306 634 201 | ||
| 789 | Q 494 709 494 1197 | ||
| 790 | Q 494 2125 923 3036 | ||
| 791 | Q 1353 3947 2222 4856 | ||
| 792 | L 2731 4856 | ||
| 793 | z | ||
| 794 | " transform="scale(0.015625)"/> | ||
| 795 | <path id="DejaVuSans-Oblique-6d" d="M 5747 2113 | ||
| 796 | L 5338 0 | ||
| 797 | L 4763 0 | ||
| 798 | L 5166 2094 | ||
| 799 | Q 5191 2228 5203 2325 | ||
| 800 | Q 5216 2422 5216 2491 | ||
| 801 | Q 5216 2772 5059 2928 | ||
| 802 | Q 4903 3084 4622 3084 | ||
| 803 | Q 4203 3084 3875 2770 | ||
| 804 | Q 3547 2456 3450 1953 | ||
| 805 | L 3066 0 | ||
| 806 | L 2491 0 | ||
| 807 | L 2900 2094 | ||
| 808 | Q 2925 2209 2937 2307 | ||
| 809 | Q 2950 2406 2950 2484 | ||
| 810 | Q 2950 2769 2794 2926 | ||
| 811 | Q 2638 3084 2363 3084 | ||
| 812 | Q 1938 3084 1609 2770 | ||
| 813 | Q 1281 2456 1184 1953 | ||
| 814 | L 800 0 | ||
| 815 | L 225 0 | ||
| 816 | L 909 3500 | ||
| 817 | L 1484 3500 | ||
| 818 | L 1375 2956 | ||
| 819 | Q 1609 3263 1923 3423 | ||
| 820 | Q 2238 3584 2597 3584 | ||
| 821 | Q 2978 3584 3223 3384 | ||
| 822 | Q 3469 3184 3519 2828 | ||
| 823 | Q 3781 3197 4126 3390 | ||
| 824 | Q 4472 3584 4856 3584 | ||
| 825 | Q 5306 3584 5551 3325 | ||
| 826 | Q 5797 3066 5797 2591 | ||
| 827 | Q 5797 2488 5784 2364 | ||
| 828 | Q 5772 2241 5747 2113 | ||
| 829 | z | ||
| 830 | " transform="scale(0.015625)"/> | ||
| 831 | <path id="DejaVuSans-Oblique-73" d="M 3200 3397 | ||
| 832 | L 3091 2853 | ||
| 833 | Q 2863 2978 2609 3040 | ||
| 834 | Q 2356 3103 2088 3103 | ||
| 835 | Q 1634 3103 1373 2948 | ||
| 836 | Q 1113 2794 1113 2528 | ||
| 837 | Q 1113 2219 1719 2053 | ||
| 838 | Q 1766 2041 1788 2034 | ||
| 839 | L 1972 1978 | ||
| 840 | Q 2547 1819 2739 1644 | ||
| 841 | Q 2931 1469 2931 1166 | ||
| 842 | Q 2931 609 2489 259 | ||
| 843 | Q 2047 -91 1331 -91 | ||
| 844 | Q 1053 -91 747 -37 | ||
| 845 | Q 441 16 72 128 | ||
| 846 | L 184 722 | ||
| 847 | Q 500 559 806 475 | ||
| 848 | Q 1113 391 1394 391 | ||
| 849 | Q 1816 391 2080 572 | ||
| 850 | Q 2344 753 2344 1031 | ||
| 851 | Q 2344 1331 1650 1516 | ||
| 852 | L 1591 1531 | ||
| 853 | L 1394 1581 | ||
| 854 | Q 956 1697 753 1886 | ||
| 855 | Q 550 2075 550 2369 | ||
| 856 | Q 550 2928 970 3256 | ||
| 857 | Q 1391 3584 2113 3584 | ||
| 858 | Q 2397 3584 2667 3537 | ||
| 859 | Q 2938 3491 3200 3397 | ||
| 860 | z | ||
| 861 | " transform="scale(0.015625)"/> | ||
| 862 | <path id="DejaVuSans-Oblique-29" d="M -397 -844 | ||
| 863 | Q 434 191 840 1120 | ||
| 864 | Q 1247 2050 1247 2913 | ||
| 865 | Q 1247 3406 1130 3892 | ||
| 866 | Q 1013 4378 775 4856 | ||
| 867 | L 1275 4856 | ||
| 868 | Q 1563 4316 1703 3812 | ||
| 869 | Q 1844 3309 1844 2822 | ||
| 870 | Q 1844 1891 1411 973 | ||
| 871 | Q 978 56 116 -844 | ||
| 872 | L -397 -844 | ||
| 873 | z | ||
| 874 | " transform="scale(0.015625)"/> | ||
| 875 | </defs> | ||
| 876 | <use xlink:href="#DejaVuSans-Oblique-4d"/> | ||
| 877 | <use xlink:href="#DejaVuSans-Oblique-65" x="86.279297"/> | ||
| 878 | <use xlink:href="#DejaVuSans-Oblique-64" x="147.802734"/> | ||
| 879 | <use xlink:href="#DejaVuSans-Oblique-69" x="211.279297"/> | ||
| 880 | <use xlink:href="#DejaVuSans-Oblique-61" x="239.0625"/> | ||
| 881 | <use xlink:href="#DejaVuSans-Oblique-6e" x="300.341797"/> | ||
| 882 | <use xlink:href="#DejaVuSans-Oblique-20" x="363.720703"/> | ||
| 883 | <use xlink:href="#DejaVuSans-Oblique-76" x="395.507812"/> | ||
| 884 | <use xlink:href="#DejaVuSans-Oblique-61" x="454.6875"/> | ||
| 885 | <use xlink:href="#DejaVuSans-Oblique-6c" x="515.966797"/> | ||
| 886 | <use xlink:href="#DejaVuSans-Oblique-75" x="543.75"/> | ||
| 887 | <use xlink:href="#DejaVuSans-Oblique-65" x="607.128906"/> | ||
| 888 | <use xlink:href="#DejaVuSans-Oblique-20" x="668.652344"/> | ||
| 889 | <use xlink:href="#DejaVuSans-Oblique-28" x="700.439453"/> | ||
| 890 | <use xlink:href="#DejaVuSans-Oblique-6d" x="739.453125"/> | ||
| 891 | <use xlink:href="#DejaVuSans-Oblique-73" x="836.865234"/> | ||
| 892 | <use xlink:href="#DejaVuSans-Oblique-29" x="888.964844"/> | ||
| 893 | </g> | ||
| 894 | </g> | ||
| 895 | </g> | ||
| 896 | <g id="line2d_15"> | ||
| 897 | <path d="M 115.363636 239.483676 | ||
| 898 | L 120.487603 242.970811 | ||
| 899 | L 125.61157 233.817081 | ||
| 900 | L 130.735537 243.515676 | ||
| 901 | L 135.859504 242.752865 | ||
| 902 | L 140.983471 241.11827 | ||
| 903 | L 146.107438 241.445189 | ||
| 904 | L 151.231405 241.554162 | ||
| 905 | L 156.355372 239.047784 | ||
| 906 | L 161.479339 242.861838 | ||
| 907 | L 166.603306 242.752865 | ||
| 908 | L 171.727273 241.990054 | ||
| 909 | L 176.85124 238.393946 | ||
| 910 | L 181.975207 205.92 | ||
| 911 | L 187.099174 242.534919 | ||
| 912 | L 192.22314 239.919568 | ||
| 913 | L 197.347107 243.842595 | ||
| 914 | L 202.471074 240.137514 | ||
| 915 | L 207.595041 241.11827 | ||
| 916 | L 212.719008 240.682378 | ||
| 917 | L 217.842975 239.810595 | ||
| 918 | L 222.966942 239.592649 | ||
| 919 | L 228.090909 240.137514 | ||
| 920 | L 233.214876 239.047784 | ||
| 921 | L 238.338843 245.368216 | ||
| 922 | L 243.46281 206.791784 | ||
| 923 | L 248.586777 241.554162 | ||
| 924 | L 253.710744 243.29773 | ||
| 925 | L 258.834711 240.355459 | ||
| 926 | L 263.958678 244.823351 | ||
| 927 | L 269.082645 241.11827 | ||
| 928 | L 274.206612 242.534919 | ||
| 929 | L 279.330579 203.304649 | ||
| 930 | L 284.454545 244.605405 | ||
| 931 | L 289.578512 237.958054 | ||
| 932 | L 294.702479 243.188757 | ||
| 933 | L 299.826446 238.720865 | ||
| 934 | L 304.950413 238.829838 | ||
| 935 | L 310.07438 242.425946 | ||
| 936 | L 315.198347 245.041297 | ||
| 937 | L 320.322314 242.861838 | ||
| 938 | L 325.446281 243.515676 | ||
| 939 | L 330.570248 240.464432 | ||
| 940 | L 335.694215 240.900324 | ||
| 941 | L 340.818182 245.15027 | ||
| 942 | L 345.942149 240.791351 | ||
| 943 | L 351.066116 242.970811 | ||
| 944 | L 356.190083 242.425946 | ||
| 945 | L 361.31405 245.477189 | ||
| 946 | L 366.438017 245.259243 | ||
| 947 | L 371.561983 245.695135 | ||
| 948 | L 376.68595 240.355459 | ||
| 949 | L 381.809917 203.958486 | ||
| 950 | L 386.933884 244.605405 | ||
| 951 | L 392.057851 242.425946 | ||
| 952 | L 397.181818 242.208 | ||
| 953 | L 402.305785 239.374703 | ||
| 954 | L 407.429752 242.752865 | ||
| 955 | L 412.553719 243.079784 | ||
| 956 | L 417.677686 244.823351 | ||
| 957 | L 422.801653 237.413189 | ||
| 958 | L 427.92562 241.663135 | ||
| 959 | L 433.049587 240.137514 | ||
| 960 | L 438.173554 243.29773 | ||
| 961 | L 443.297521 245.586162 | ||
| 962 | L 448.421488 245.586162 | ||
| 963 | L 453.545455 187.067676 | ||
| 964 | L 458.669421 243.188757 | ||
| 965 | L 463.793388 241.227243 | ||
| 966 | L 468.917355 242.425946 | ||
| 967 | L 474.041322 245.041297 | ||
| 968 | L 479.165289 244.823351 | ||
| 969 | L 484.289256 245.804108 | ||
| 970 | L 489.413223 242.970811 | ||
| 971 | L 494.53719 245.15027 | ||
| 972 | L 499.661157 245.913081 | ||
| 973 | L 504.785124 239.919568 | ||
| 974 | L 509.909091 241.445189 | ||
| 975 | L 515.033058 242.099027 | ||
| 976 | L 520.157025 244.932324 | ||
| 977 | L 525.280992 245.368216 | ||
| 978 | L 530.404959 242.643892 | ||
| 979 | L 535.528926 245.259243 | ||
| 980 | L 540.652893 245.913081 | ||
| 981 | L 545.77686 244.605405 | ||
| 982 | L 550.900826 243.079784 | ||
| 983 | L 556.024793 241.445189 | ||
| 984 | L 561.14876 244.278486 | ||
| 985 | L 566.272727 244.932324 | ||
| 986 | L 571.396694 243.406703 | ||
| 987 | L 576.520661 239.592649 | ||
| 988 | L 581.644628 242.643892 | ||
| 989 | L 586.768595 204.394378 | ||
| 990 | L 591.892562 241.445189 | ||
| 991 | L 597.016529 241.663135 | ||
| 992 | L 602.140496 176.60627 | ||
| 993 | L 607.264463 243.188757 | ||
| 994 | L 612.38843 242.752865 | ||
| 995 | L 617.512397 240.246486 | ||
| 996 | L 622.636364 245.368216 | ||
| 997 | " clip-path="url(#p09249702fb)" style="fill: none; stroke: #000000; stroke-width: 1.5; stroke-linecap: square"/> | ||
| 998 | </g> | ||
| 999 | <g id="line2d_16"> | ||
| 1000 | <path d="M 115.363636 186.413838 | ||
| 1001 | L 120.487603 116.453189 | ||
| 1002 | L 125.61157 243.515676 | ||
| 1003 | L 130.735537 244.714378 | ||
| 1004 | L 135.859504 242.970811 | ||
| 1005 | L 140.983471 238.502919 | ||
| 1006 | L 146.107438 242.643892 | ||
| 1007 | L 151.231405 242.099027 | ||
| 1008 | L 156.355372 242.316973 | ||
| 1009 | L 161.479339 242.861838 | ||
| 1010 | L 166.603306 244.278486 | ||
| 1011 | L 171.727273 243.842595 | ||
| 1012 | L 176.85124 237.413189 | ||
| 1013 | L 181.975207 242.425946 | ||
| 1014 | L 187.099174 241.445189 | ||
| 1015 | L 192.22314 243.951568 | ||
| 1016 | L 197.347107 152.850162 | ||
| 1017 | L 202.471074 243.733622 | ||
| 1018 | L 207.595041 177.913946 | ||
| 1019 | L 212.719008 157.862919 | ||
| 1020 | L 217.842975 245.695135 | ||
| 1021 | L 222.966942 244.060541 | ||
| 1022 | L 228.090909 245.477189 | ||
| 1023 | L 233.214876 242.425946 | ||
| 1024 | L 238.338843 243.733622 | ||
| 1025 | L 243.46281 243.515676 | ||
| 1026 | L 248.586777 243.733622 | ||
| 1027 | L 253.710744 244.823351 | ||
| 1028 | L 258.834711 243.406703 | ||
| 1029 | L 263.958678 176.933189 | ||
| 1030 | L 269.082645 244.714378 | ||
| 1031 | L 274.206612 244.496432 | ||
| 1032 | L 279.330579 243.188757 | ||
| 1033 | L 284.454545 245.586162 | ||
| 1034 | L 289.578512 244.605405 | ||
| 1035 | L 294.702479 245.15027 | ||
| 1036 | L 299.826446 245.259243 | ||
| 1037 | L 304.950413 243.515676 | ||
| 1038 | L 310.07438 82.126703 | ||
| 1039 | L 315.198347 242.425946 | ||
| 1040 | L 320.322314 44.64 | ||
| 1041 | L 325.446281 239.701622 | ||
| 1042 | L 330.570248 244.932324 | ||
| 1043 | L 335.694215 245.368216 | ||
| 1044 | L 340.818182 245.259243 | ||
| 1045 | L 345.942149 244.823351 | ||
| 1046 | L 351.066116 245.804108 | ||
| 1047 | L 356.190083 245.477189 | ||
| 1048 | L 361.31405 244.169514 | ||
| 1049 | L 366.438017 244.605405 | ||
| 1050 | L 371.561983 245.586162 | ||
| 1051 | L 376.68595 245.586162 | ||
| 1052 | L 381.809917 243.079784 | ||
| 1053 | L 386.933884 242.861838 | ||
| 1054 | L 392.057851 244.823351 | ||
| 1055 | L 397.181818 242.970811 | ||
| 1056 | L 402.305785 245.259243 | ||
| 1057 | L 407.429752 241.663135 | ||
| 1058 | L 412.553719 243.624649 | ||
| 1059 | L 417.677686 244.714378 | ||
| 1060 | L 422.801653 246.24 | ||
| 1061 | L 427.92562 243.733622 | ||
| 1062 | L 433.049587 245.15027 | ||
| 1063 | L 438.173554 138.138811 | ||
| 1064 | L 443.297521 240.573405 | ||
| 1065 | L 448.421488 243.951568 | ||
| 1066 | L 453.545455 243.406703 | ||
| 1067 | L 458.669421 242.208 | ||
| 1068 | L 463.793388 242.208 | ||
| 1069 | L 468.917355 242.534919 | ||
| 1070 | L 474.041322 244.278486 | ||
| 1071 | L 479.165289 242.534919 | ||
| 1072 | L 484.289256 242.534919 | ||
| 1073 | L 489.413223 244.714378 | ||
| 1074 | L 494.53719 242.534919 | ||
| 1075 | L 499.661157 245.15027 | ||
| 1076 | L 504.785124 243.29773 | ||
| 1077 | L 509.909091 245.259243 | ||
| 1078 | L 515.033058 245.041297 | ||
| 1079 | L 520.157025 243.515676 | ||
| 1080 | L 525.280992 244.496432 | ||
| 1081 | L 530.404959 244.605405 | ||
| 1082 | L 535.528926 244.387459 | ||
| 1083 | L 540.652893 244.714378 | ||
| 1084 | L 545.77686 244.060541 | ||
| 1085 | L 550.900826 245.15027 | ||
| 1086 | L 556.024793 244.387459 | ||
| 1087 | L 561.14876 245.913081 | ||
| 1088 | L 566.272727 245.15027 | ||
| 1089 | L 571.396694 160.587243 | ||
| 1090 | L 576.520661 244.823351 | ||
| 1091 | L 581.644628 243.624649 | ||
| 1092 | L 586.768595 243.951568 | ||
| 1093 | L 591.892562 244.714378 | ||
| 1094 | L 597.016529 188.157405 | ||
| 1095 | L 602.140496 243.624649 | ||
| 1096 | L 607.264463 242.534919 | ||
| 1097 | L 612.38843 243.951568 | ||
| 1098 | L 617.512397 173.010162 | ||
| 1099 | L 622.636364 243.733622 | ||
| 1100 | " clip-path="url(#p09249702fb)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #000000; stroke-width: 1.5"/> | ||
| 1101 | </g> | ||
| 1102 | <g id="patch_3"> | ||
| 1103 | <path d="M 90 256.32 | ||
| 1104 | L 90 34.56 | ||
| 1105 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1106 | </g> | ||
| 1107 | <g id="patch_4"> | ||
| 1108 | <path d="M 648 256.32 | ||
| 1109 | L 648 34.56 | ||
| 1110 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1111 | </g> | ||
| 1112 | <g id="patch_5"> | ||
| 1113 | <path d="M 90 256.32 | ||
| 1114 | L 648 256.32 | ||
| 1115 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1116 | </g> | ||
| 1117 | <g id="patch_6"> | ||
| 1118 | <path d="M 90 34.56 | ||
| 1119 | L 648 34.56 | ||
| 1120 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1121 | </g> | ||
| 1122 | <g id="text_17"> | ||
| 1123 | <!-- Connect median NLB vs ALB --> | ||
| 1124 | <g transform="translate(283.8825 28.56) scale(0.12 -0.12)"> | ||
| 1125 | <defs> | ||
| 1126 | <path id="DejaVuSans-43" d="M 4122 4306 | ||
| 1127 | L 4122 3641 | ||
| 1128 | Q 3803 3938 3442 4084 | ||
| 1129 | Q 3081 4231 2675 4231 | ||
| 1130 | Q 1875 4231 1450 3742 | ||
| 1131 | Q 1025 3253 1025 2328 | ||
| 1132 | Q 1025 1406 1450 917 | ||
| 1133 | Q 1875 428 2675 428 | ||
| 1134 | Q 3081 428 3442 575 | ||
| 1135 | Q 3803 722 4122 1019 | ||
| 1136 | L 4122 359 | ||
| 1137 | Q 3791 134 3420 21 | ||
| 1138 | Q 3050 -91 2638 -91 | ||
| 1139 | Q 1578 -91 968 557 | ||
| 1140 | Q 359 1206 359 2328 | ||
| 1141 | Q 359 3453 968 4101 | ||
| 1142 | Q 1578 4750 2638 4750 | ||
| 1143 | Q 3056 4750 3426 4639 | ||
| 1144 | Q 3797 4528 4122 4306 | ||
| 1145 | z | ||
| 1146 | " transform="scale(0.015625)"/> | ||
| 1147 | <path id="DejaVuSans-6f" d="M 1959 3097 | ||
| 1148 | Q 1497 3097 1228 2736 | ||
| 1149 | Q 959 2375 959 1747 | ||
| 1150 | Q 959 1119 1226 758 | ||
| 1151 | Q 1494 397 1959 397 | ||
| 1152 | Q 2419 397 2687 759 | ||
| 1153 | Q 2956 1122 2956 1747 | ||
| 1154 | Q 2956 2369 2687 2733 | ||
| 1155 | Q 2419 3097 1959 3097 | ||
| 1156 | z | ||
| 1157 | M 1959 3584 | ||
| 1158 | Q 2709 3584 3137 3096 | ||
| 1159 | Q 3566 2609 3566 1747 | ||
| 1160 | Q 3566 888 3137 398 | ||
| 1161 | Q 2709 -91 1959 -91 | ||
| 1162 | Q 1206 -91 779 398 | ||
| 1163 | Q 353 888 353 1747 | ||
| 1164 | Q 353 2609 779 3096 | ||
| 1165 | Q 1206 3584 1959 3584 | ||
| 1166 | z | ||
| 1167 | " transform="scale(0.015625)"/> | ||
| 1168 | <path id="DejaVuSans-6e" d="M 3513 2113 | ||
| 1169 | L 3513 0 | ||
| 1170 | L 2938 0 | ||
| 1171 | L 2938 2094 | ||
| 1172 | Q 2938 2591 2744 2837 | ||
| 1173 | Q 2550 3084 2163 3084 | ||
| 1174 | Q 1697 3084 1428 2787 | ||
| 1175 | Q 1159 2491 1159 1978 | ||
| 1176 | L 1159 0 | ||
| 1177 | L 581 0 | ||
| 1178 | L 581 3500 | ||
| 1179 | L 1159 3500 | ||
| 1180 | L 1159 2956 | ||
| 1181 | Q 1366 3272 1645 3428 | ||
| 1182 | Q 1925 3584 2291 3584 | ||
| 1183 | Q 2894 3584 3203 3211 | ||
| 1184 | Q 3513 2838 3513 2113 | ||
| 1185 | z | ||
| 1186 | " transform="scale(0.015625)"/> | ||
| 1187 | <path id="DejaVuSans-65" d="M 3597 1894 | ||
| 1188 | L 3597 1613 | ||
| 1189 | L 953 1613 | ||
| 1190 | Q 991 1019 1311 708 | ||
| 1191 | Q 1631 397 2203 397 | ||
| 1192 | Q 2534 397 2845 478 | ||
| 1193 | Q 3156 559 3463 722 | ||
| 1194 | L 3463 178 | ||
| 1195 | Q 3153 47 2828 -22 | ||
| 1196 | Q 2503 -91 2169 -91 | ||
| 1197 | Q 1331 -91 842 396 | ||
| 1198 | Q 353 884 353 1716 | ||
| 1199 | Q 353 2575 817 3079 | ||
| 1200 | Q 1281 3584 2069 3584 | ||
| 1201 | Q 2775 3584 3186 3129 | ||
| 1202 | Q 3597 2675 3597 1894 | ||
| 1203 | z | ||
| 1204 | M 3022 2063 | ||
| 1205 | Q 3016 2534 2758 2815 | ||
| 1206 | Q 2500 3097 2075 3097 | ||
| 1207 | Q 1594 3097 1305 2825 | ||
| 1208 | Q 1016 2553 972 2059 | ||
| 1209 | L 3022 2063 | ||
| 1210 | z | ||
| 1211 | " transform="scale(0.015625)"/> | ||
| 1212 | <path id="DejaVuSans-63" d="M 3122 3366 | ||
| 1213 | L 3122 2828 | ||
| 1214 | Q 2878 2963 2633 3030 | ||
| 1215 | Q 2388 3097 2138 3097 | ||
| 1216 | Q 1578 3097 1268 2742 | ||
| 1217 | Q 959 2388 959 1747 | ||
| 1218 | Q 959 1106 1268 751 | ||
| 1219 | Q 1578 397 2138 397 | ||
| 1220 | Q 2388 397 2633 464 | ||
| 1221 | Q 2878 531 3122 666 | ||
| 1222 | L 3122 134 | ||
| 1223 | Q 2881 22 2623 -34 | ||
| 1224 | Q 2366 -91 2075 -91 | ||
| 1225 | Q 1284 -91 818 406 | ||
| 1226 | Q 353 903 353 1747 | ||
| 1227 | Q 353 2603 823 3093 | ||
| 1228 | Q 1294 3584 2113 3584 | ||
| 1229 | Q 2378 3584 2631 3529 | ||
| 1230 | Q 2884 3475 3122 3366 | ||
| 1231 | z | ||
| 1232 | " transform="scale(0.015625)"/> | ||
| 1233 | <path id="DejaVuSans-74" d="M 1172 4494 | ||
| 1234 | L 1172 3500 | ||
| 1235 | L 2356 3500 | ||
| 1236 | L 2356 3053 | ||
| 1237 | L 1172 3053 | ||
| 1238 | L 1172 1153 | ||
| 1239 | Q 1172 725 1289 603 | ||
| 1240 | Q 1406 481 1766 481 | ||
| 1241 | L 2356 481 | ||
| 1242 | L 2356 0 | ||
| 1243 | L 1766 0 | ||
| 1244 | Q 1100 0 847 248 | ||
| 1245 | Q 594 497 594 1153 | ||
| 1246 | L 594 3053 | ||
| 1247 | L 172 3053 | ||
| 1248 | L 172 3500 | ||
| 1249 | L 594 3500 | ||
| 1250 | L 594 4494 | ||
| 1251 | L 1172 4494 | ||
| 1252 | z | ||
| 1253 | " transform="scale(0.015625)"/> | ||
| 1254 | <path id="DejaVuSans-20" transform="scale(0.015625)"/> | ||
| 1255 | <path id="DejaVuSans-6d" d="M 3328 2828 | ||
| 1256 | Q 3544 3216 3844 3400 | ||
| 1257 | Q 4144 3584 4550 3584 | ||
| 1258 | Q 5097 3584 5394 3201 | ||
| 1259 | Q 5691 2819 5691 2113 | ||
| 1260 | L 5691 0 | ||
| 1261 | L 5113 0 | ||
| 1262 | L 5113 2094 | ||
| 1263 | Q 5113 2597 4934 2840 | ||
| 1264 | Q 4756 3084 4391 3084 | ||
| 1265 | Q 3944 3084 3684 2787 | ||
| 1266 | Q 3425 2491 3425 1978 | ||
| 1267 | L 3425 0 | ||
| 1268 | L 2847 0 | ||
| 1269 | L 2847 2094 | ||
| 1270 | Q 2847 2600 2669 2842 | ||
| 1271 | Q 2491 3084 2119 3084 | ||
| 1272 | Q 1678 3084 1418 2786 | ||
| 1273 | Q 1159 2488 1159 1978 | ||
| 1274 | L 1159 0 | ||
| 1275 | L 581 0 | ||
| 1276 | L 581 3500 | ||
| 1277 | L 1159 3500 | ||
| 1278 | L 1159 2956 | ||
| 1279 | Q 1356 3278 1631 3431 | ||
| 1280 | Q 1906 3584 2284 3584 | ||
| 1281 | Q 2666 3584 2933 3390 | ||
| 1282 | Q 3200 3197 3328 2828 | ||
| 1283 | z | ||
| 1284 | " transform="scale(0.015625)"/> | ||
| 1285 | <path id="DejaVuSans-64" d="M 2906 2969 | ||
| 1286 | L 2906 4863 | ||
| 1287 | L 3481 4863 | ||
| 1288 | L 3481 0 | ||
| 1289 | L 2906 0 | ||
| 1290 | L 2906 525 | ||
| 1291 | Q 2725 213 2448 61 | ||
| 1292 | Q 2172 -91 1784 -91 | ||
| 1293 | Q 1150 -91 751 415 | ||
| 1294 | Q 353 922 353 1747 | ||
| 1295 | Q 353 2572 751 3078 | ||
| 1296 | Q 1150 3584 1784 3584 | ||
| 1297 | Q 2172 3584 2448 3432 | ||
| 1298 | Q 2725 3281 2906 2969 | ||
| 1299 | z | ||
| 1300 | M 947 1747 | ||
| 1301 | Q 947 1113 1208 752 | ||
| 1302 | Q 1469 391 1925 391 | ||
| 1303 | Q 2381 391 2643 752 | ||
| 1304 | Q 2906 1113 2906 1747 | ||
| 1305 | Q 2906 2381 2643 2742 | ||
| 1306 | Q 2381 3103 1925 3103 | ||
| 1307 | Q 1469 3103 1208 2742 | ||
| 1308 | Q 947 2381 947 1747 | ||
| 1309 | z | ||
| 1310 | " transform="scale(0.015625)"/> | ||
| 1311 | <path id="DejaVuSans-69" d="M 603 3500 | ||
| 1312 | L 1178 3500 | ||
| 1313 | L 1178 0 | ||
| 1314 | L 603 0 | ||
| 1315 | L 603 3500 | ||
| 1316 | z | ||
| 1317 | M 603 4863 | ||
| 1318 | L 1178 4863 | ||
| 1319 | L 1178 4134 | ||
| 1320 | L 603 4134 | ||
| 1321 | L 603 4863 | ||
| 1322 | z | ||
| 1323 | " transform="scale(0.015625)"/> | ||
| 1324 | <path id="DejaVuSans-61" d="M 2194 1759 | ||
| 1325 | Q 1497 1759 1228 1600 | ||
| 1326 | Q 959 1441 959 1056 | ||
| 1327 | Q 959 750 1161 570 | ||
| 1328 | Q 1363 391 1709 391 | ||
| 1329 | Q 2188 391 2477 730 | ||
| 1330 | Q 2766 1069 2766 1631 | ||
| 1331 | L 2766 1759 | ||
| 1332 | L 2194 1759 | ||
| 1333 | z | ||
| 1334 | M 3341 1997 | ||
| 1335 | L 3341 0 | ||
| 1336 | L 2766 0 | ||
| 1337 | L 2766 531 | ||
| 1338 | Q 2569 213 2275 61 | ||
| 1339 | Q 1981 -91 1556 -91 | ||
| 1340 | Q 1019 -91 701 211 | ||
| 1341 | Q 384 513 384 1019 | ||
| 1342 | Q 384 1609 779 1909 | ||
| 1343 | Q 1175 2209 1959 2209 | ||
| 1344 | L 2766 2209 | ||
| 1345 | L 2766 2266 | ||
| 1346 | Q 2766 2663 2505 2880 | ||
| 1347 | Q 2244 3097 1772 3097 | ||
| 1348 | Q 1472 3097 1187 3025 | ||
| 1349 | Q 903 2953 641 2809 | ||
| 1350 | L 641 3341 | ||
| 1351 | Q 956 3463 1253 3523 | ||
| 1352 | Q 1550 3584 1831 3584 | ||
| 1353 | Q 2591 3584 2966 3190 | ||
| 1354 | Q 3341 2797 3341 1997 | ||
| 1355 | z | ||
| 1356 | " transform="scale(0.015625)"/> | ||
| 1357 | <path id="DejaVuSans-4e" d="M 628 4666 | ||
| 1358 | L 1478 4666 | ||
| 1359 | L 3547 763 | ||
| 1360 | L 3547 4666 | ||
| 1361 | L 4159 4666 | ||
| 1362 | L 4159 0 | ||
| 1363 | L 3309 0 | ||
| 1364 | L 1241 3903 | ||
| 1365 | L 1241 0 | ||
| 1366 | L 628 0 | ||
| 1367 | L 628 4666 | ||
| 1368 | z | ||
| 1369 | " transform="scale(0.015625)"/> | ||
| 1370 | <path id="DejaVuSans-4c" d="M 628 4666 | ||
| 1371 | L 1259 4666 | ||
| 1372 | L 1259 531 | ||
| 1373 | L 3531 531 | ||
| 1374 | L 3531 0 | ||
| 1375 | L 628 0 | ||
| 1376 | L 628 4666 | ||
| 1377 | z | ||
| 1378 | " transform="scale(0.015625)"/> | ||
| 1379 | <path id="DejaVuSans-42" d="M 1259 2228 | ||
| 1380 | L 1259 519 | ||
| 1381 | L 2272 519 | ||
| 1382 | Q 2781 519 3026 730 | ||
| 1383 | Q 3272 941 3272 1375 | ||
| 1384 | Q 3272 1813 3026 2020 | ||
| 1385 | Q 2781 2228 2272 2228 | ||
| 1386 | L 1259 2228 | ||
| 1387 | z | ||
| 1388 | M 1259 4147 | ||
| 1389 | L 1259 2741 | ||
| 1390 | L 2194 2741 | ||
| 1391 | Q 2656 2741 2882 2914 | ||
| 1392 | Q 3109 3088 3109 3444 | ||
| 1393 | Q 3109 3797 2882 3972 | ||
| 1394 | Q 2656 4147 2194 4147 | ||
| 1395 | L 1259 4147 | ||
| 1396 | z | ||
| 1397 | M 628 4666 | ||
| 1398 | L 2241 4666 | ||
| 1399 | Q 2963 4666 3353 4366 | ||
| 1400 | Q 3744 4066 3744 3513 | ||
| 1401 | Q 3744 3084 3544 2831 | ||
| 1402 | Q 3344 2578 2956 2516 | ||
| 1403 | Q 3422 2416 3680 2098 | ||
| 1404 | Q 3938 1781 3938 1306 | ||
| 1405 | Q 3938 681 3513 340 | ||
| 1406 | Q 3088 0 2303 0 | ||
| 1407 | L 628 0 | ||
| 1408 | L 628 4666 | ||
| 1409 | z | ||
| 1410 | " transform="scale(0.015625)"/> | ||
| 1411 | <path id="DejaVuSans-76" d="M 191 3500 | ||
| 1412 | L 800 3500 | ||
| 1413 | L 1894 563 | ||
| 1414 | L 2988 3500 | ||
| 1415 | L 3597 3500 | ||
| 1416 | L 2284 0 | ||
| 1417 | L 1503 0 | ||
| 1418 | L 191 3500 | ||
| 1419 | z | ||
| 1420 | " transform="scale(0.015625)"/> | ||
| 1421 | <path id="DejaVuSans-73" d="M 2834 3397 | ||
| 1422 | L 2834 2853 | ||
| 1423 | Q 2591 2978 2328 3040 | ||
| 1424 | Q 2066 3103 1784 3103 | ||
| 1425 | Q 1356 3103 1142 2972 | ||
| 1426 | Q 928 2841 928 2578 | ||
| 1427 | Q 928 2378 1081 2264 | ||
| 1428 | Q 1234 2150 1697 2047 | ||
| 1429 | L 1894 2003 | ||
| 1430 | Q 2506 1872 2764 1633 | ||
| 1431 | Q 3022 1394 3022 966 | ||
| 1432 | Q 3022 478 2636 193 | ||
| 1433 | Q 2250 -91 1575 -91 | ||
| 1434 | Q 1294 -91 989 -36 | ||
| 1435 | Q 684 19 347 128 | ||
| 1436 | L 347 722 | ||
| 1437 | Q 666 556 975 473 | ||
| 1438 | Q 1284 391 1588 391 | ||
| 1439 | Q 1994 391 2212 530 | ||
| 1440 | Q 2431 669 2431 922 | ||
| 1441 | Q 2431 1156 2273 1281 | ||
| 1442 | Q 2116 1406 1581 1522 | ||
| 1443 | L 1381 1569 | ||
| 1444 | Q 847 1681 609 1914 | ||
| 1445 | Q 372 2147 372 2553 | ||
| 1446 | Q 372 3047 722 3315 | ||
| 1447 | Q 1072 3584 1716 3584 | ||
| 1448 | Q 2034 3584 2315 3537 | ||
| 1449 | Q 2597 3491 2834 3397 | ||
| 1450 | z | ||
| 1451 | " transform="scale(0.015625)"/> | ||
| 1452 | <path id="DejaVuSans-41" d="M 2188 4044 | ||
| 1453 | L 1331 1722 | ||
| 1454 | L 3047 1722 | ||
| 1455 | L 2188 4044 | ||
| 1456 | z | ||
| 1457 | M 1831 4666 | ||
| 1458 | L 2547 4666 | ||
| 1459 | L 4325 0 | ||
| 1460 | L 3669 0 | ||
| 1461 | L 3244 1197 | ||
| 1462 | L 1141 1197 | ||
| 1463 | L 716 0 | ||
| 1464 | L 50 0 | ||
| 1465 | L 1831 4666 | ||
| 1466 | z | ||
| 1467 | " transform="scale(0.015625)"/> | ||
| 1468 | </defs> | ||
| 1469 | <use xlink:href="#DejaVuSans-43"/> | ||
| 1470 | <use xlink:href="#DejaVuSans-6f" x="69.824219"/> | ||
| 1471 | <use xlink:href="#DejaVuSans-6e" x="131.005859"/> | ||
| 1472 | <use xlink:href="#DejaVuSans-6e" x="194.384766"/> | ||
| 1473 | <use xlink:href="#DejaVuSans-65" x="257.763672"/> | ||
| 1474 | <use xlink:href="#DejaVuSans-63" x="319.287109"/> | ||
| 1475 | <use xlink:href="#DejaVuSans-74" x="374.267578"/> | ||
| 1476 | <use xlink:href="#DejaVuSans-20" x="413.476562"/> | ||
| 1477 | <use xlink:href="#DejaVuSans-6d" x="445.263672"/> | ||
| 1478 | <use xlink:href="#DejaVuSans-65" x="542.675781"/> | ||
| 1479 | <use xlink:href="#DejaVuSans-64" x="604.199219"/> | ||
| 1480 | <use xlink:href="#DejaVuSans-69" x="667.675781"/> | ||
| 1481 | <use xlink:href="#DejaVuSans-61" x="695.458984"/> | ||
| 1482 | <use xlink:href="#DejaVuSans-6e" x="756.738281"/> | ||
| 1483 | <use xlink:href="#DejaVuSans-20" x="820.117188"/> | ||
| 1484 | <use xlink:href="#DejaVuSans-4e" x="851.904297"/> | ||
| 1485 | <use xlink:href="#DejaVuSans-4c" x="926.708984"/> | ||
| 1486 | <use xlink:href="#DejaVuSans-42" x="982.421875"/> | ||
| 1487 | <use xlink:href="#DejaVuSans-20" x="1051.025391"/> | ||
| 1488 | <use xlink:href="#DejaVuSans-76" x="1082.8125"/> | ||
| 1489 | <use xlink:href="#DejaVuSans-73" x="1141.992188"/> | ||
| 1490 | <use xlink:href="#DejaVuSans-20" x="1194.091797"/> | ||
| 1491 | <use xlink:href="#DejaVuSans-41" x="1225.878906"/> | ||
| 1492 | <use xlink:href="#DejaVuSans-4c" x="1294.287109"/> | ||
| 1493 | <use xlink:href="#DejaVuSans-42" x="1350"/> | ||
| 1494 | </g> | ||
| 1495 | </g> | ||
| 1496 | <g id="legend_1"> | ||
| 1497 | <g id="patch_7"> | ||
| 1498 | <path d="M 589.085938 71.91625 | ||
| 1499 | L 641 71.91625 | ||
| 1500 | Q 643 71.91625 643 69.91625 | ||
| 1501 | L 643 41.56 | ||
| 1502 | Q 643 39.56 641 39.56 | ||
| 1503 | L 589.085938 39.56 | ||
| 1504 | Q 587.085938 39.56 587.085938 41.56 | ||
| 1505 | L 587.085938 69.91625 | ||
| 1506 | Q 587.085938 71.91625 589.085938 71.91625 | ||
| 1507 | z | ||
| 1508 | " style="fill: #ffffff; opacity: 0.8"/> | ||
| 1509 | </g> | ||
| 1510 | <g id="line2d_17"> | ||
| 1511 | <path d="M 591.085938 47.658437 | ||
| 1512 | L 601.085938 47.658437 | ||
| 1513 | L 611.085938 47.658437 | ||
| 1514 | " style="fill: none; stroke: #000000; stroke-width: 1.5; stroke-linecap: square"/> | ||
| 1515 | </g> | ||
| 1516 | <g id="text_18"> | ||
| 1517 | <!-- ALB --> | ||
| 1518 | <g transform="translate(619.085938 51.158437) scale(0.1 -0.1)"> | ||
| 1519 | <use xlink:href="#DejaVuSans-41"/> | ||
| 1520 | <use xlink:href="#DejaVuSans-4c" x="68.408203"/> | ||
| 1521 | <use xlink:href="#DejaVuSans-42" x="124.121094"/> | ||
| 1522 | </g> | ||
| 1523 | </g> | ||
| 1524 | <g id="line2d_18"> | ||
| 1525 | <path d="M 591.085938 62.336562 | ||
| 1526 | L 601.085938 62.336562 | ||
| 1527 | L 611.085938 62.336562 | ||
| 1528 | " style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #000000; stroke-width: 1.5"/> | ||
| 1529 | </g> | ||
| 1530 | <g id="text_19"> | ||
| 1531 | <!-- NLB --> | ||
| 1532 | <g transform="translate(619.085938 65.836562) scale(0.1 -0.1)"> | ||
| 1533 | <use xlink:href="#DejaVuSans-4e"/> | ||
| 1534 | <use xlink:href="#DejaVuSans-4c" x="74.804688"/> | ||
| 1535 | <use xlink:href="#DejaVuSans-42" x="130.517578"/> | ||
| 1536 | </g> | ||
| 1537 | </g> | ||
| 1538 | </g> | ||
| 1539 | </g> | ||
| 1540 | </g> | ||
| 1541 | <defs> | ||
| 1542 | <clipPath id="p09249702fb"> | ||
| 1543 | <rect x="90" y="34.56" width="558" height="221.76"/> | ||
| 1544 | </clipPath> | ||
| 1545 | </defs> | ||
| 1546 | </svg> | ||
diff --git a/static/assets/notes/ps1-prompt.png b/static/assets/notes/ps1-prompt.png new file mode 100644 index 0000000..e27c714 --- /dev/null +++ b/static/assets/notes/ps1-prompt.png | |||
| Binary files differ | |||
diff --git a/static/assets/notes/trigraphs.gif b/static/assets/notes/trigraphs.gif new file mode 100644 index 0000000..f579b9d --- /dev/null +++ b/static/assets/notes/trigraphs.gif | |||
| Binary files differ | |||
diff --git a/static/assets/notes/xterm-palette.png b/static/assets/notes/xterm-palette.png new file mode 100644 index 0000000..e286c5e --- /dev/null +++ b/static/assets/notes/xterm-palette.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/algae-sava/dji-algae-0.jpg b/static/assets/posts/algae-sava/dji-algae-0.jpg new file mode 100755 index 0000000..d444c80 --- /dev/null +++ b/static/assets/posts/algae-sava/dji-algae-0.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/algae-sava/dji-algae-1.jpg b/static/assets/posts/algae-sava/dji-algae-1.jpg new file mode 100755 index 0000000..26ee43c --- /dev/null +++ b/static/assets/posts/algae-sava/dji-algae-1.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/algae-sava/dji-algae-2.jpg b/static/assets/posts/algae-sava/dji-algae-2.jpg new file mode 100755 index 0000000..d38f8cd --- /dev/null +++ b/static/assets/posts/algae-sava/dji-algae-2.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/algae-sava/dji-algae-3.jpg b/static/assets/posts/algae-sava/dji-algae-3.jpg new file mode 100755 index 0000000..9706fa0 --- /dev/null +++ b/static/assets/posts/algae-sava/dji-algae-3.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/algae-sava/dji-algae-4.jpg b/static/assets/posts/algae-sava/dji-algae-4.jpg new file mode 100755 index 0000000..b0db4a2 --- /dev/null +++ b/static/assets/posts/algae-sava/dji-algae-4.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/algae-sava/dji-algae-5.jpg b/static/assets/posts/algae-sava/dji-algae-5.jpg new file mode 100755 index 0000000..f3c1b3b --- /dev/null +++ b/static/assets/posts/algae-sava/dji-algae-5.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/cv/avatar.gif b/static/assets/posts/cv/avatar.gif new file mode 100755 index 0000000..82e5f39 --- /dev/null +++ b/static/assets/posts/cv/avatar.gif | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/desktop.png b/static/assets/posts/dfd-rice/desktop.png new file mode 100755 index 0000000..8dcfd51 --- /dev/null +++ b/static/assets/posts/dfd-rice/desktop.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/install-00.png b/static/assets/posts/dfd-rice/install-00.png new file mode 100755 index 0000000..2660f90 --- /dev/null +++ b/static/assets/posts/dfd-rice/install-00.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/install-01.png b/static/assets/posts/dfd-rice/install-01.png new file mode 100755 index 0000000..1281be1 --- /dev/null +++ b/static/assets/posts/dfd-rice/install-01.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/install-02.png b/static/assets/posts/dfd-rice/install-02.png new file mode 100755 index 0000000..9cac5e3 --- /dev/null +++ b/static/assets/posts/dfd-rice/install-02.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/install-03.png b/static/assets/posts/dfd-rice/install-03.png new file mode 100755 index 0000000..dc7cbd1 --- /dev/null +++ b/static/assets/posts/dfd-rice/install-03.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/install-04.png b/static/assets/posts/dfd-rice/install-04.png new file mode 100755 index 0000000..675a78f --- /dev/null +++ b/static/assets/posts/dfd-rice/install-04.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/install-05.png b/static/assets/posts/dfd-rice/install-05.png new file mode 100755 index 0000000..8b580b9 --- /dev/null +++ b/static/assets/posts/dfd-rice/install-05.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/installation.svg b/static/assets/posts/dfd-rice/installation.svg new file mode 100755 index 0000000..bb9560b --- /dev/null +++ b/static/assets/posts/dfd-rice/installation.svg | |||
| @@ -0,0 +1,1388 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
| 3 | |||
| 4 | <svg width="210mm" height="297mm" viewBox="0 0 210 297" version="1.1" id="svg5" inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" sodipodi:docname="installation.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> | ||
| 5 | <sodipodi:namedview id="namedview7" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.093984989" inkscape:cx="-883.11975" inkscape:cy="1877.9595" inkscape:window-width="1462" inkscape:window-height="940" inkscape:window-x="1725" inkscape:window-y="74" inkscape:window-maximized="0" inkscape:current-layer="layer1" /> | ||
| 6 | <defs id="defs2" /> | ||
| 7 | <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> | ||
| 8 | <g id="g368" transform="translate(76.329351,109.97993)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-01.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75"> | ||
| 9 | <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAd | ||
| 10 | X0lEQVR4nO3dvbqjOKIFUNf9KujHm9CP6HAeb4IJbnCm3RQ/sgQbI2CtrwMXxpIQAvYR2P3r8Xg9 | ||
| 11 | AADI+b+jGwAAcDUCFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 12 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 13 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 14 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 15 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 16 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 17 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 18 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 19 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 20 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 21 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 22 | ECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUA | ||
| 23 | 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 | ||
| 135 | pGBrvYV3K/u50A/Z9lT62n7ZrmZ7Z+N1/STxypZVaD1eCvY+vg5x9vYDnfhfwNp4C6Oysu/PYC1V | ||
| 136 | 1xqACuUXNqp87+ZtRX82FfixnGk/bJxtWu07+2W7dSWvvgW/oq4VguMwtR+Pcvb2Az3453ew6p/V | ||
| 137 | WKfD+4N//f73dKv/899/NfXDbAmZ9q2yop9n++FAO+2XY3U4/vfW27hqdfb2A8f644dGV5xNKrPF | ||
| 138 | 3leXn5aXa3m37eP9tXW116z5cbXCCoW+Hb6ub3+qzZXrb9n2x877ZYuaKlaP/xXjocbH42VF4ZXH | ||
| 139 | 17rqvplyJCogYvwzDTX3VobXrdE1bPTWz4tUuprWtW791nLq2/bX39+6KjxMPe2fpf5sbX9rP6/o | ||
| 140 | n9FFtLy95X6ePumy9355TK6dNVVsb+eW/VIzHpba+VjYX631LpUfPL6ajovC9ja1s6Yxle0HmPr1 | ||
| 141 | eLyObkNf9ptsu+FNoiC9B0CXnrNL/c+ex1zF+2S/AAAAAAAAAAAAAAAAAAAAAAAAAAAU/T9NrMo+ | ||
| 142 | adlPnAAAAABJRU5ErkJggg== | ||
| 143 | " id="image41" x="-234.20293" y="-199.01341" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-01.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" /> | ||
| 144 | <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg | ||
| 145 | AElEQVR4nO3dzZKjuLYGUPJGDfrxeuhH9PA83hn04A582kUBkiWxBQKvFR0dLieWNuLvS8DkzzQ9 | ||
| 146 | JwAA4vzf2QUAANyNgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzA | ||
| 147 | AgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADB | ||
| 148 | BCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUA | ||
| 149 | EEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglY | ||
| 150 | AADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCY | ||
| 151 | gAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAA | ||
| 152 | gglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAEL | ||
| 153 | ACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQT | ||
| 154 | sAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBA | ||
| 155 | MAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmAB | ||
| 156 | AAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGAC | ||
| 157 | FgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAI | ||
| 158 | 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 | ||
| 214 | lrMq7z0Cg28X4Y6Z2XUvXzXI0+3m96Kz01z2xw8Wtrxz3GxHJQ4KWI8/LX70fD6fz+cxlXBR181/ | ||
| 215 | be66XVx3uVy38hKpNH9Wyh9/tMevcExfNW4HBaz3oeKWx4xzla+vdx352vmKGoe2dr5q/1LlrPXz | ||
| 216 | rttFyub8pgbh2wbnBmxH4/h1dgEVXr/Tb/5zftCav5maPtPFup3FjxZtbk4f9f7HOjMzuP5n4UyV | ||
| 217 | 1FlY5PP5LB+31PTvdzKzsNl44fS19WT6/Ti/O/dBDXWO007Dcqxaf0rqXE9cvj4sJmhelL33Y+sJ | ||
| 218 | 1l30OBa2be/rIvPrSab3wn5LGqltZ3Nnm2mnfP+Zeqd8v5Svv217H2E7uoQzA1bbhrTZTm2Qqm1n | ||
| 219 | 83VmBxHyfkmd5TM73/dttpMqYLPOwtMwVeOWer35qcx81U5fW0+qnZL5rUr5i+2irc7N9k9pp3a5 | ||
| 220 | pNrZub187Pdj+52OClH7sXwLm+McJWR55deTfv0275/zE+zZf5b0+HG/1GN7H3k7GsqZN7k/n8/3 | ||
| 221 | nnfAgV6stV3bP11tMeWpruqzQ43JdNLFx4btoqrfA8Z/tHb2NPiFR4Vmtevh/HeJPaMatd01TNZW | ||
| 222 | +c6Co8aquR3bUaErXSK8uvcOZb1i9fudsk3vekra/4bNr4eScYtavkeut4vfhrt2lNlOrZYNUssr | ||
| 223 | M9Rd+62avmF9GG1/fgrb0SRgHex9rnja8ZvEs/JGmQZd1/71qeN+fY3ggOVVJXD8z5qd3v1mttPv | ||
| 224 | OTYEusR6ktkuatcHa8iL7WiI52AVWpxSPreYPV6XfnbOwpjXVUmxvC5nczsN2XLvsR/b73WU3T+k | ||
| 225 | x+i0PtzeN4/blQLW9O9SaQi/DcsyfPEXNlg+2cueRkqm3/xR1Lx8wzb2kl9eZwms56xZq71feP80 | ||
| 226 | m8eGqoV75H5sNJv3Xe083IYs1tTEbetD/uMnLseQrvttRzdz0CXCxW9ssfczLpbT5kZbsixT7dRO | ||
| 227 | H/V+SurbGZn53Rz/1PRR47n+SHM78yk3T+OnzkKXTF87/vl+NyfeXF61Gur82M6efVxbPbXLcX+/ | ||
| 228 | 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 | ||
| 284 | j5A6AABuY1fAej6fUXUAANyGS4QAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABPuZpqhn | ||
| 285 | WXniKABwV3V5yRksAIBgAhYAQDABCwAgmIAFABBMwAIACCZgAQAEE7AAAIIJWAAAwQQsAIBgAhYA | ||
| 286 | QDABCwAgmIAFABBMwAIACCZgAQAEE7AAAIL9TNPz7BoAAG7FGSwAgGACFgBAMAELACCYgAUAEEzA | ||
| 287 | AgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADB | ||
| 288 | BCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFjjIp80AAAS+SURB | ||
| 289 | VABAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAI | ||
| 290 | JmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwA | ||
| 291 | gGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzA | ||
| 292 | AgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADB | ||
| 293 | BCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUA | ||
| 294 | EEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglY | ||
| 295 | AADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCY | ||
| 296 | gAUAEEzAAgAIJmABAAQTsAAAgv06uwAAgOt6bL7rDBYAQDABCwAgWGTA+u8/fwe2BoQYfMMcvDyA | ||
| 297 | Nrl7sDZ3fH/9+k+3Yu5jPnQ3G7HXrO2fqf/+8/fBI7Nen0sKOL7ONr3rHG0cUvWMVifwtTYC1nsP | ||
| 298 | 9d5P7dxnfcku7z2bi/k9bPaP6eivX/+51imH+bCcsh6evv5/w9YHMJplwCo8GGTO0Lx/ND+qVR1j | ||
| 299 | 5i0szpds9psJNKk6P9Zfe0wqmcHXNOvxaahz8/3acW7oN6Sd95vroR5qudTWmWqn93LJ1Jkqvmp7 | ||
| 300 | aVheDWdwN8d/s85UPVHLq61+gIU/AlZ5usrsoDdf1x5jFqeC3rvCqjNDmR107BmmfAsfx6q2zkz9 | ||
| 301 | VeMcNT617Wz+tKHfj9qGYk+dIet/1HjOu97Tb+04NCzH1LhtStUTtbzC10PgO/0OWOX7kcIwsf7R | ||
| 302 | mLuqzd10uc0dfep0S+oQ2FBnZrK2ce69aGrbD18uU/rMRNS8h6z/setDuU4rQOAshxu5NuDq/hew | ||
| 303 | 9lzCKNcpY82bXf/2mZp+6nmn9vxaRuFJwdp+Mz8tHOfMOMTWU+iw5bJfyfxuxuvyk8SNlRWo3V4y | ||
| 304 | em9fp7h6/cAg/hewdl7CKOzs+DNYqe5qA1Cm/cxM5a/dvDWMZ1WDH9tZj8POs03Njlku+7W13HwJ | ||
| 305 | vqGvBoHrYdRyPMvV6wdG8Ps5WOX3arQZ8PrgX7/+s57r//7zd9U4bLYQU1+ThnHeHIcTdVou5xpw | ||
| 306 | /e9ttPWq1tXrB871x4NGG/Ymhdmi99HlVXm+l3dtH6+vtfVeMuXHyTITZMZ2/rq8/qiaC6ffM+9T | ||
| 307 | 5+WyR0kXzet/w/pQ4uP20tB44fbV1t2RKUeiAkIsH9NQcm1lftxaHMMWP3q9iEpX677apq9tp7y2 | ||
| 308 | v/791lXmZur1+KTGs7b+2nFuGJ/FQTQ/v/lxXt/p0nu5TKtjZ0kX++vcs1xK1odUnVNiedX2m2o/ | ||
| 309 | cPuq2i4y81tVZ0kxhfUDrP1M0/PsGsbS72TbF14kCmT0ABjSY/Ndf+x5yVF8TJYLAAAAAAAAAAAA | ||
| 310 | AAAAAAAAAAAAAEDW/wMXMWZMdK+KTQAAAABJRU5ErkJggg== | ||
| 311 | " id="image69" x="-64.869583" y="-199.01341" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-01.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" /> | ||
| 312 | </g> | ||
| 313 | <g id="g372" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-02.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" transform="translate(407.41482,-79.959051)"> | ||
| 314 | <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAO | ||
| 315 | fElEQVR4nO3dwXaqZgNAUdOVQR+vQx6RYR+vgw7+Qbr8jQqCHoWYvVcHXoJ8BJPLuR9oPw6H8QAA | ||
| 316 | QOePrXcAAODdCCwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA | ||
| 317 | gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA | ||
| 318 | AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI | ||
| 319 | CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA | ||
| 320 | gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA | ||
| 321 | AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI | ||
| 322 | CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA | ||
| 323 | gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA | ||
| 324 | AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI | ||
| 325 | CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA | ||
| 326 | gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA | ||
| 327 | AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI | ||
| 328 | CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA | ||
| 329 | gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA | ||
| 330 | AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI | ||
| 331 | CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwA | ||
| 332 | gJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjA | ||
| 333 | AgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCI | ||
| 334 | CSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCICSwAgJjAAgCIfa59 | ||
| 335 | wjg+Yzfg5xmGYfT7wE/j5xbmDUOzHTNYAAAxgQUAEBNYwHfV/PiLh3vxbgPMEljwfMPw7b8HN3XH | ||
| 336 | 0MuXP5sMmuf4wLsQWPB84/jf20OOD1459Krl81+aoQwATqx+FyHQGIbDOP6/S06z5jRWjsuPC78e | ||
| 337 | 3Fz/7r263PjN/Vwy6Mz+T23qju9r1XbWLr856OH763V5GOfXP32w/Ofh+Op4byDsyUOBNfg3Kzzi | ||
| 338 | 7KT79XjqxHz1qzPr3+e0pZbv55JBp/Z/yfYXDrFqO2uXLxn0kfXveH3PnrL4pfdXN1zKP77k0Rks | ||
| 339 | n6fCrxWcpZb8+iwMl6d69hDV9q9uZ+HGn7oPLxh33Zj+3oZvnvGvDpcIYWfuuOLzrhMST32D4cxx | ||
| 340 | XjXu2tfL6wu/g8CC/Tle8TksOA1fXkJ6jakbs9ohHjdzfKaO832zUMuz6b71gR/Fuwhhr77ecrjz | ||
| 341 | 2YvXvy8yVx3ns+2cPp6aQtv/6wvcS2DBzjxyxn392Tr5cK+FAz2+zukKC/d51TbPfPVTO8UoyOCH | ||
| 342 | cIkQnm/+EwrOnM1qnK18eQfP1KzJzLhrl19137sXl9+BNH8cbj7l5vGZ2v7acW++XmvXn3l9l+wP | ||
| 343 | sA8fh8O6X9fvf6P6v7Lze/32n//24yHe3m6Oz2//uYVrTn8vqmliM1jAXcys3OT4wC8msOBOpgFE | ||
| 344 | ww27PD5+buGWqSmsdb87bnIHAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ | ||
| 345 | LACAmMACAIgJLACAmMACAIgJLACAmMACAIh9Pn2EYXj6EGxnOIxb7wIATBo3Ok2ZwQIAiAksAICY | ||
| 346 | wAIAiD3/HiyAWf/8+9fx8Z+ffy9cflzyz79/nX4VYA8EFrClszw6/vHm8q8H6grYJ5cIAQBiZrCA | ||
| 347 | LU3NP80sP14iNH0F7JbAAnbh7M6qmeVXryEC7IrAArY3VUsqCvih3IMFbOyOujre4X76TkOA/RBY | ||
| 348 | wJYeqas/P/8+3pIFsCsCCwAg5h4sYGNnU1CnnyB6ufw4s3X6dsIX7SjAYgIL2NIdH9Nwcx2AzblE | ||
| 349 | CAAQe/4M1jg+fQi249UFgEtmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA | ||
| 350 | YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsK4YhmEP497cjWEYrq4z | ||
| 351 | s/yR3QMAFvp8wRiX5/VxHJc8a8lqd3v29mfGPSw7Aje3c3Ujy7+v+14XAOCmVwTW4aedue/b24Vl | ||
| 352 | M47j1EzSs4/S2fbP/mh+CwAqLwqsq86K5PjH45n+bLLna4XjV8+ee3x8c/nU9qcWLhk3mZG6up1q | ||
| 353 | iGrmDAC4acvAmnLMrKu1cdZbl2veXD6z/cPEDNPNcR+/4Lhq3OOSw+JwnJk5S/YfADh6UWBdnUn6 | ||
| 354 | OuXP586ZqSRasg+PBMRW8THz/V4esVVHEgB4no3vwTpOq9zRBFOXAgEAtrXHS4RrXV4KfM24Uzdm | ||
| 355 | /TgmvQCgtXFgrb1EuEM/dLcBgOfZ8oNGT6Nq/hbsVdu840sPjjj1wZ7Jxp+x2YVDr/0UUxdqAeDL | ||
| 356 | Bje5H5bN+iy/PevsUt3Vx5fbubr9+TfinZl6l+L8U65uf2p5dRVy1fcFADzo43BYd649PTX/3Ot6 | ||
| 357 | iTsCCwDYm7MPRZpYa90p/h1uct/K/AwZAPBrCayHiCoA4NKWN7kDALwlgQUAEBNYAAAxgQUAEBNY | ||
| 358 | AAAxgQUAEBNYAAAxgQUAEBNYAAAxgQUAEBNYAAAxgQUAEBNYAAAxgQUAEBNYAAAxgQUAEBNYAAAx | ||
| 359 | gQUAEBNYAAAxgQUAEBNYAAAxgQUAEPt88PnDMCT7AQDwNh4KrHEcq/0AAHgbLhECAMQEFgBATGAB | ||
| 360 | AMQEFgBATGABAMQEFgBATGABAMQ+Dofqs6x84igA8K7W9ZIZLACAmMACAIgJLACAmMACAIgJLACA | ||
| 361 | mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA2MfhMG69DwAAb8UM | ||
| 362 | FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA | ||
| 363 | TGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGAB | ||
| 364 | AMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQE | ||
| 365 | FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA | ||
| 366 | TGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGAB | ||
| 367 | AMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQE | ||
| 368 | FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA | ||
| 369 | TGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGAB | ||
| 370 | AMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQE | ||
| 371 | FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA | ||
| 372 | TGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGAB | ||
| 373 | AMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQE | ||
| 374 | FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA | ||
| 375 | TGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGAB | ||
| 376 | AMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQE | ||
| 377 | FgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBATGABAMQEFgBA | ||
| 378 | TGABAMQEFgBATGABAMQEFgBA7HPrHQAA+LmGq0vNYAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBM | ||
| 379 | YAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBMYAEAxAQWAEBMYAEAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 380 | wBv4H+xMBAXacnSYAAAAAElFTkSuQmCC | ||
| 381 | " id="image81" x="-565.28839" y="184.09018" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-02.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" /> | ||
| 382 | <image width="169.33333" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg | ||
| 383 | AElEQVR4nO3dwbKjOLYFUOeLHPTn9dCf6GF/Xg968Aa3ykUaJEuwAWGvFR0dTl8sHQSIbbBdv263 | ||
| 384 | xw0AgJz/O7sAAIBPI2ABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 385 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 386 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 387 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 388 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 389 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 390 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 391 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 392 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 393 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 394 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 395 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 396 | 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 | ||
| 452 | 8fTDxYuXN+Ptr/hQTqn9ljpL9TS+6u3yve1Xlq9fVZ7X81x4+qd169tVZ6SdvffDW/kLZaWFX8a2 | ||
| 453 | vnypzt7H9Tr32+7r6mm3Yvu+Xa895qUt7VRqe7uft3fx8qd11cbnsVKdveMzb7C+3UvH6d7bt3f5 | ||
| 454 | vev8Kr9ut979/p/Hve9IjnkHw8Fs1nP1Biw40en751kFXOU4vUqdq03XqP9tT99QXOkKFjDnnSWD | ||
| 455 | s3/ernOcXqXOSxCw2MoReDqbgJENtX+eWMxQ41BxlTrH92kfcgcAOJ2ABQAQNnrA2um7oL5iusJo | ||
| 456 | g3ZwPVu+2r26xxHGfIQavpnx/zHIOLSXMcjx+9aYdQ5Y0gpDB6zI9xcWt9PGb9Evtnz8+X6xx9TR | ||
| 457 | 8hn7d7vRZpmfnf/4D0MMNQgnOmscjP8x9h7ns47fRfc/vfxpnDo/z9ABa3wnzoalQ8Khso5xAz7S | ||
| 458 | M0LJUgcb91uEi5evFr8++rPk/Ifj6r86OP1puLh1dc5/Wy/yddne3zWpj9viDwmW6ux9/m1JW+pZ | ||
| 459 | 8fsupV9N7H1JcDt2re/zmcVNWap8+3Z/28XG+o/pt2XQVrT/tpGDx793v6o0Xjq+UsfjrXMcerfv | ||
| 460 | 23a2nC/2Pn73dsD2LY1zZP48xbgBa66+geePf/5/vxR1K6S03jrnpT4PxRUT0HaVcVusv1Rn7/Ml | ||
| 461 | veOZGrfSDNL+ktXrO33wdt0r7S/uV6V+U9u9sl69+0PkuOjtt3feSO3nZ41/qv0V/W5pavU8Uxrn | ||
| 462 | lnZa5oGzjt9elTp729l1vj3rPBhxpVuEb88N4+uqc8CV2lJSanWm7Rw2RI0dRep5PB7PM8FLg2ft | ||
| 463 | Env0+3IWOUy8uwP2jb2HaMCpZtHpdbYUMODxu6hS5+lGq2e1K13BujVfSDjS/C11+wvfLjPg+i5a | ||
| 464 | rPNRvrLdtV6Vdq5ij+04wmiktmPv+JzVb1c9B+y3e88PV5l/Uo5c3xGOX/Z2pYA1v1R4YjEHuND6 | ||
| 465 | liaL55Xtl2V6J5dSO1dxxZpbRLbjiv08tf9Etkul/r33W1e2sr5tfdnblW4RDuuR+NGH/Tz+/C+l | ||
| 466 | n1JAZIhS7XCus7bjt/V7sNPnGXZl+64wbsCqT0kvf1qxvUv39e73+4B7z8aSfgbzmI8H9h6Ebxfb | ||
| 467 | Y3PsdE+q6zOwHyayHdcdyJE2I9vl5cO52xtc1/VZ7a+eZ47cRo0W+xrn4D3lPLX39l29/LCudIvw | ||
| 468 | 8ed3XF8uxU//tPiqXbNFvbZ4m6UvgFS+GLLirkrjuJXWt/f53va31NMynpXlW7pevb69su1v3+69 | ||
| 469 | y/eO8x79zttZNw7b54Hjxz+1fGmx1Hafv6S9/Xlh83EO1tll7/nhlvvC4OJr9ziu9zifnuLX7dZ7 | ||
| 470 | 3v3ncW+SXZd8375kp2Y/1TevO3AM88xnu+72vXf+7saf+lZ59CtYO23Ci+4Zq133HQBwFeaZz2b7 | ||
| 471 | 9ho9YLWwpd8yRMDezDOfzfbtNe6H3AEALkrAAgAI+8aA9TFfAV2ntPrz57/zu7XbxyFeQO8CnP59 | ||
| 472 | /iMdU8DpqwmX8zkBy/F/jLPG+ZTffTnAaCs1Wj1nGWccxqkE6PI5AYu4FT+dtVMlezc+bNeLRqtn | ||
| 473 | QF81RF+1snAhI36L8OdnKhZ/OHTxa6LrfkWtq/2XZRZ/RaOl30r783oq/Xa1fyusbOX529Jg1se5 | ||
| 474 | 8uTierWPf6/5L9S93V5d4xCvs97F6nFu6frWdhz1bseufoPtL9bfe/zuPZ+0NFJafj4JLG6synzS | ||
| 475 | VeeKwQeeRgxYt9kk+Pj7v5m6OFEu/jXYfksjG5cvPe5Sar90Rqn/3tr8t3fr4zxfvnd9VwTKkpcG | ||
| 476 | n6eWrvFZsV5biix18bLA9np6j6PUftsy/lvaf5oPUVc9w84niy0srmzLGL6ts35cAG8Neotw7zdM | ||
| 477 | pYhwfKfBrlsaKS1z8DvUU8a/xZYxPLiM1GuP7GvxtXsfF43OGofGNrsCX/wwH+HYhMsZ9ArWWRbf | ||
| 478 | qE0vfszf7W1vP+jqbzSvMj5DjfNjdic0u/ztOtuly4px6NW1XpV6tlzNbTHU/gwfQ8D6x4rw1DXr | ||
| 479 | bQxnp7e/twPqj5ylBhznZ/q/9VyE611+JyeOZ+84rGt/ez3zG9xZLlDBHga9Rcjtz09XjHAWZ3CP | ||
| 480 | x6Px40frlv9Uo43DYj1DVQi0ELCWLc5u9TeRXdNf48It/Xa13/v8WQ6oZ7GL7fd8f7bX+rL6HXyf | ||
| 481 | +uV7EpF2Ig32dhrsq/Ez9RsXaM9YWw7zxu1y/H4Ol3OlW4Qv88tL5tj+iYrHn99h7p3v3vbb235j | ||
| 482 | s2/b7318m8ynpbsVL08uLh8cn0o97Ur19PZb3469Vxq69tv4OM+Xn9dTWf5lKNb1u+64aNe4z2+Z | ||
| 483 | TxbHIbtdpss8/1Q6LkrbpavOvbcLfLxft1vvpwT+edx7ZWXvj2p+NqN3FV+ypUZbzXvhmyjfprT6 | ||
| 484 | Xz4s8GPxLUqzviPoSlewvlDXO2BG4DR2lu3XsAGCBKyhOVVczvdssgHXdMCSjlcaBIMDB/MhdwCA | ||
| 485 | MAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACA | ||
| 486 | MAELACBMwAIACBOwAADCBCwAgDABCwAg7JIB636/3+/3s6t4r7HIS6wL881kw/348nH48tUHSn6f | ||
| 487 | XcCylznr8XhM/zT959cyDt/p59Cw6c/a/x13QKNBr2A9Ho+fWez54IquWzktTtm+A+5UA5YEcLpB | ||
| 488 | r2BFvLzXnP5zeoVs+mTXpbL5AvMu5gvM+33509vT1XPJeReV9utNNbZTGbcV9T9f1bJdFtvvWt/e | ||
| 489 | fm/VjdK7fdv1jmel39Tzb7ueHzhd26tru1f2/3qRje1Xlq/029VOZPsGj4vecajMe8DTlQLWiom1 | ||
| 490 | 1E72nuNiC9M5622/pceLfv76dprrDYjPf/Y+31v/fBWeU3xX+yu2Y1e/pUT+bKp9+/bqGs/UdlxX | ||
| 491 | /3wcSvWn9qvS/l+S2q8q/fbun5Htu6Lfli7a25GroG7QW4SLHo/Hc6b7gAN7ugojrE6phufzlSL3 | ||
| 492 | rv/08WmMGkd2l2pkj7FNDdfe45Ba9952zup373aAqStdwbq6x+zO1LlW1DO/VnG80i2MLUZrJ9Xv | ||
| 493 | 4vOV7b5r/Rv73XLUjLZdpvaYDUY4TgEB61DPa++3MWJWVz3zWwa71tZiqHfwJ47PYv2Vekrb/Zgr | ||
| 494 | kQf3O9p2+eB+gakr3SLsNf10yAhp4OnnFuc4JY1WD8c4a7vb34Bv8MkB6/Z3xlrxYcw9Zv/RziiN | ||
| 495 | 9SwuNtq63Ha+zdfb+OLnvtsb2bIub+vfst23OKvfwxofs+uD++3az+GzDXqL8OXK05Yr3vPXvrx7 | ||
| 496 | nn6I+/l8yzvs6WdKXupcrL/U7zrzTnvbbxmH0vN7XIFI1Z/qt7K+b7fvfHy6RuylqfZ+W+rv3e4V | ||
| 497 | XcdpsN/pq7r2k67jerGedf22LJ9q57DjYrQPlcJoft1uvd9/+edx75Whc7/W60vFnKtxD7SjAuzk | ||
| 498 | 5UdJOl/dNzMPegUrJXjFCLYQmwC+yocHLKc0BtG+K9ppAT7Ah3/IHQDgeAIWAECYgAUAECZgAQCE | ||
| 499 | CVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCE | ||
| 500 | CVgAAGECFgBAmIB1Aff7/ewSdjHmes2rGrNOAEb2++wClk1PaY/H48RK3rrf74NX+KO3zp9NMH9J | ||
| 501 | 6flUv5d2of0WgF2NGLBeTslfdYZedMrqPx6PxSs3pefXdRFpZ2+NddpvAXgaMWBVlK4QLD7/c4Z7 | ||
| 502 | /qnlbFdpZ7rMzz+fC79c1Kn0u+IKx/yKUW/7pTrX1VMpsr3f+pPzdrq243TJ+aaZt//yksXWWuoE | ||
| 503 | gKetAevtxYztp5+WoFO6clB6vKj3CsRi75V+113hWLxi1NV+qc7UFZfefkvrldqO866fEe3t/jMf | ||
| 504 | 6vY6JS0AnjYFrJ3OKPMLD/XeK4tFKpyem9tT0U7FtDfVmEKOKWb8Lp4dRd4zuD8I8OUGvUU4vQfX | ||
| 505 | e2tvi1I7jZmv9Nq37UesKHLvcRvNMesrXQEwaMD60XjRaH7LZmOPOwnWWdIVTFP1HLBeKZHte6H1 | ||
| 506 | BeAsI/4O1oBnrJ9zavALdLu6UKkfyeUrAEYMWI0WA0QwVUy/BDf9vFekiz3Sz5Y2v+1e4S20/+y9 | ||
| 507 | EwJwUSPeInwJMaVws/j8lgBUar/xVS0fKu+ts/5LB5X25wvP66zUU/kFivnz9fVaHJ+37bxd2RVW | ||
| 508 | 7D8r1hcAbrfbr9ut7zS25aznw78AwFnqv8vzTl+AufAtQgCAMXXfIiwHvuIPHPR2AQBwaa5gAQCE | ||
| 509 | CVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCE | ||
| 510 | CVgAAGECFgBA2O9cU49cUwDAse73fdt/XCUnZOp0BQsAIEzAAgAIE7AAAMKCn8H6BPfJHejH2rvF | ||
| 511 | 9z9vY29pZ/VrATjefN7+kJn88fjjE1ov/2SJK1j/5KGfw+DpvmHvSbWzKN4gAFt87Dw/jYZdMfED | ||
| 512 | MuVm334Fq/G9ReTKVqWdt+1P6/wJbZ/wlgjg+irz88vj50vezv9DzPONl6mmRT6Xv99d5frqgFXf | ||
| 513 | fRePkLevau/u+c+37c+fGeLYA/h67e/Se+f/k+f5eTxazEyVW4dfn7G+9xbhrjvufWJ6tLS8tvH+ | ||
| 514 | /R43HwFotzg/PyfnFWeZxffSG4tcIxWMfjLWt/rSK1j1/f65Q69OYKV3JL2HyttrbK5jAZyiMv0u | ||
| 515 | Ts6L8/8zQnU1ta9KulpxUeqLr2N9acCq77LPK7fZTueXgt++pF6ndAVwlt7o03LGmS9zwjyfjUTf | ||
| 516 | mq5u33yL8Cq32Ep1SlcA5wqeRxa/dX7aPF+5tdd11++L09XtmwPWrXps7J29Ku3P/zTQUQfAxLqM | ||
| 517 | Nf15oMoyZ87z2z8+9d3p6va1twifptd4p8dJ6fGt7YNZla/drmt/Wqd0BTCOlnuFpXm+9PwQ83zp | ||
| 518 | XuE0e73ksOfCX5+ubrfbr9R/Nbrkz5EfYI8BAOb2jkQDBIC2r51l6vzqW4QAAHv49luEAMDtNsQV | ||
| 519 | pk/iChYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 520 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABD2++D+7vf7 | ||
| 521 | wT0CABzs0ID1eDyO7A4A4BRuEQIAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAEDYr9vtrN+m | ||
| 522 | 8oujAMBoMrnIFSwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBM | ||
| 523 | wAIACBOwAADCBCwAgDABCwAgTMACAAj7dbs9zq4BAOCjuIIFABAmYAEAhAlYAABhAhYAQJiABQAQ | ||
| 524 | JmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQ | ||
| 525 | JmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQ | ||
| 526 | JmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAPEh2noAAAUSSURB | ||
| 527 | VABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 528 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 529 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 530 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 531 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 532 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 533 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 534 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 535 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGG/zy4AAOC67ovPuoIFABAm | ||
| 536 | YAEAhCUD1n//9+9ga0DE4Afm4OUBrFP7DNbixPev3//ZrZjPMR26Dxuxn1XbvlL//d+/Dx6Z+f7c | ||
| 537 | UsDxda6zd52jjUOpntHqBL7WQsB6zlDPeWrjnPUlU95zNV/W97DVP6ajf/3+z7UuOUyH5ZT98PT9 | ||
| 538 | /xuOPoDRvAasxpNB5QrN80/Ts1rXOWbawsv1ksV+K4GmVOfb+nvPSS0r+LPMfHxW1Ln4fO84r+g3 | ||
| 539 | 0s7zyflQD7VdeusstbP3dqnUWSq+63hZsb1WXMFdHP/FOkv1pLbXuvoBXvwRsNrTVWWCXnzce455 | ||
| 540 | uRT0nAq7rgxVJujsFaZ6C2/HqrfOSv1d45wan952Fv+6ot+31g3Fljoj+39qPKddb+m3dxxWbMfS | ||
| 541 | uC0q1ZPaXvH9EPhO/wSs9nmkMUzM/zTmVLU4TbdbnOhLl1tKp8AVdVYWWzfOe2+a3vbj2+VWvjKR | ||
| 542 | WvfI/p/dH9rttAMEVzlu5NqAq/srYG25hdFup4w1bXb+7rO0/G3PT2pP72U0XhTs7bfy18ZxroxD | ||
| 543 | tp5Gh22X7VrWdzFet18kXllZg97jpWLv4+sUV68fGMRfAWvjLYzGzo6/glXqrjcAVdqvrFT93s3T | ||
| 544 | ivHsavBtO/Nx2Hi1abVjtst261pefQt+RV8rBPfD1HY8y9XrB0bwz+9gtX9WY50B7w/+6/d/5mv9 | ||
| 545 | 3//9u2scFlvI1LfKinFeHIcT7bRdzjXg/r+30farXlevHzjXHz80umI2acwWe59dfiqv9/Ks7e39 | ||
| 546 | tXW9tyz5drHKApWxnT5urz9Vc+PyW9b9tvN22aKli9X7/4r9ocXb42VF443H17rujkw5EhUQ8foz | ||
| 547 | DS33VqbnrZdz2Muffh6k0tW8r3XL97bTXtu//v7WVeXD1PPxKY1nb/2947xifF5OovX1rY/z/JMu | ||
| 548 | e2+X2+zc2dLF9jq3bJeW/aFU562wvXr7LbUfPL66jovK+nbV2VJMY/0Ac79ut8fZNYxlv4ttX3iT | ||
| 549 | KMjoATCk++Kz/mPPr5zFx2S7AAAAAAAAAAAAAAAAAAAAAAAAAABU/T+x9xtLJOr2IAAAAABJRU5E | ||
| 550 | rkJggg== | ||
| 551 | " id="image93" x="-395.95505" y="184.09018" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-02.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" /> | ||
| 552 | </g> | ||
| 553 | <g id="g364" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-00.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" transform="translate(456.74601,90.184622)"> | ||
| 554 | <image width="169.33333" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,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 " id="image17-3" x="-614.61957" y="-372.38272" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-00.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" /> | ||
| 555 | <image width="169.33334" height="127" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAP jElEQVR4nO3dwZai2gFAUTurBvm8DP1Eh/m8DDLIoFZ8PgQK8KBo7b0yqK5GuIIt513Q/DmdLicA ADr/ePUAAAA+jcACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMAC AIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJ LACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA mMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACAmMACAIgJLACA2Nfa B1wuewwDjut8Pl+87vmtvP75bc7nZj1msAAAYgILACAmsODY7merq/nrbaa2/vg4X/u8AFICCyL6 YIlX7aXz+XcdoF/1ZOGQBBa8m213HD//jLt2nLveSe02beC5Vn+KEFjtNm5uz/Q//v4+C77/arDw 5TL+kJn1bBvnYD1rxzn1V/O/HGxiyfMdHdJyq47X7Uhun8XacVbLz+znav8ACzwUWGez0PCj7xPh /R+X/P7+n9jtOXV0E1Pr+fGEunY8a8c5+qxnlp8az9TPM8uvsvZ4ne6e2vwhCJ/X6M9T+/mB/eOt nt8g/zqSR2ewfD8KH2+vs8uSfzujObVtVclKpsazcJyVqUR72rZ2euwzL6queaz3eT7eHu/zLhHC 6xxtYuBo41nr3cc/JXlegyuYwM4EFrzI/SWb1tQNPa8az97effwzqiS6Xj0M1wlMEFjw0ZxHGZi/ GQ6I+JoGOIDl3965Yc0bvgJq7XiONl0UjueRVe2xWzav82jHCD6dGSzojH5ubnAD+O1Hz+4/4T/z 8+36l1zlWfupsbXj2TbO0TuBRpef2m9rxz8/nvn1nCaO15Lx3A9p23o2bPc0tp+3rQfY6s/ptO6f 2d/fFf2/rPP53vV1Xn1tAdt8yg5/19c/rHH7Oq9me81gwYcyYwHwOgILfvDG//n+viP/AJ+y89/4 9Q8bTU1hrfu34CZ3AICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAks AICYwAIAiAksAICYwAIAiAksAIDY1+5bOJ933wRwbOfT5dVDAH6py4vefsxgAQDEBBYAQExgAQDE BBZwFP/5778Gf7z+7/73U48COIL9b3IHWOC+ov759e/7Pw5+GCwGcBBmsIDX00nAhzGDBbzYqrr6 nrW6/iDLgGMSWMArTUXSNaSufxz8rK6AIxNYwBFN3YMF8BYEFvBig48ELgmp6x3up79PbgEchMAC XmnDNNXg84Mmt4AD8ilCAICYGSzgiKZucr/OV7lECByZwAKOYpBKU58unF8A4AhcIgQAiO0/g3W5 7L4J4Ni8CwC/jRksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiAks AICYwAIAiAksAICYwAIAiAksAICYwAIAiAksAICYwAIAiH1UYJ3P50OtZ+0mzufzEzY95YWbZsbe x+V+/V4JAI/7esI2Bu/Xl8tl4aMWLvkZ3uX5fh/NPYZ6f15/5KWydpyrlr8d6pOP2nXTo9t9l1cR wMd7RmCd/n4y2O8cUK1223pWPa/3PQteLpf9Zjg27JapucDvVS08KKuWHyzzzKaZ31Z1XN73xQlw HE8KrCmjMwHXXw4mFb7PLlP/BT86AzG1/pkT5P16ZrY7P50wZflkyaqZktvB3O+60fVMPam1AfHj +peMf4PBobn95XWjP45/7fLbxnn9+f6gzByv5QdidFf8OJ7HZ/4AGPXKwJo6kc/MJdz+crDA/Il2 aoX3Rs9So9udGcyqTcwH5arxDwZ2PemOrmcw/oWDv7dk/QvHv9ZbdMDMfvjxeC0PplUXQ2fWv+sM JcDv8aTAqmYyXnVC3XW7Cy9O7T2GvU+r+Yzdq6zdVw++4Edb/DQd4o+sH4DKU+/Buj8TPPLmvvaE ffvAtffovMT9laNvm28G38/Mfj4tHv/9Yq99XjP7efQy6Mzye9wdteTS58zDAdjVUy8R3l+u2vsd /2mzPjtt6FqBp4mz+0FMDeldxj9q7Tinlh+9ya81mOUaDVYAnunFN7l/gCecxo4/2Tbv3cd/cHvf 6AbABs/+otGZez72vhdkcP/K+XxOzkbn/3twPaNrzte5dlsbxjBzyWzbGK5/u3CFt6+x0avSg/XM L//jmNcuv3zhDcuv5QYsgJ28cgZrEFuDE9XUHTyjRj+IN7/+5euZWXjXyYMN41+1nsElzh9/Pq3c z2vHHx6vVS+eDcuvujQ8sz9XLb/H62HJ8QVggz+n09obTf76+Zdfj1gbWG9xZz0A/DbLvh9n3Ynb PVjbbZ6hUVcA8NkE1kOqD5oBAJ/k2Te5AwB8PIEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEF ABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABAT WAAAMYEFABD7evDx5/M5GQcAwMd4KLAul0s1DgCAj+ESIQBATGABAMQEFgBATGABAMQEFgBATGAB AMQEFgBA7M/pVH2XlW8cBQA+1bpeMoMFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABATWAAA MYEFABATWAAAMYEFABATWAAAMYEFABATWAAAMYEFABD7czpdXj0GAICPYgYLACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgIL ACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAm sAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAAYgILACAmsAAA YgILACD29eoBAAC8r/Pob81gAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQDE BBYAQExgAQDEBBYAQExgAQDEBBYAQExgAQAAAAAAAAAAAAAAAAAAAAAAAADAB/gfm8Fj1ALsE0sA AAAASUVORK5CYII= " id="image29-6" x="-445.28625" y="-372.38272" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-00.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" /> | ||
| 556 | </g> | ||
| 557 | <g id="g513" transform="translate(1043.4871,32.342183)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-03.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75"> | ||
| 558 | <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,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 | ||
| 628 | zuvf140/tO79PXZK5efiv4pxAOBXuVefj/OPzKFwxpvc95Y943JdxgEAdnJmgnXiEV0y8cM4AMAe | ||
| 629 | vudXhAAAk5BgAQCESbAAAMIkWAAAYRIsAIAwCRYAQJgECwAgTIIFABAmwQIACJNgAQCESbAAAMIk | ||
| 630 | WAAAYRIsAIAwCRYAQJgECwAg7O/eDzwee4QBAPA9nMECAAiTYAEAhE2dYN3v9/v9fnYURTPHdgm9 | ||
| 631 | A3jRAb9o2Nsd3PHh5lJxXmVDnxXnVcYHUk5OsO5/evvT4/F4uOer02yr2G+LR3/5JgfMn9UmJv92 | ||
| 632 | zbBftVlPTrCeKZRc6hfq3eJmyLVcZXul4vxt/Y20WwrmKoMJFd2/IpzQz7mu1f99TZZf3yyVrzSx | ||
| 633 | rOftT291rpZPvV8P8ufFlnoej0d7v0rlK/HU31yNc7VTvXFWqiq1266lvxvb7ZrPvf19jfDtI73j | ||
| 634 | WX9zp/4ue/GxX71xds3Pevyr86GkK556/e37UX37rga5bOuttj3Spkr8pf0iMv6960/l/YF2l/3q | ||
| 635 | jbP3OFjZvsP9bTn4XtqmBCtyWKpUu3GfHEikeutZfV3fsbe/X7L6qYF6evtVel2K5xnt27niepzL | ||
| 636 | 8r1xBsdnVaW/veO56oD58PaR59LcNZ7Pqrq27/b+3spzcrVfvXH2zs/e/aWlU43xVOpv34/q27c9 | ||
| 637 | 4Eq7KV3j2Vt+7/V/oN1InMPqgbX39+uzq9v2M1h7DNDwjn2Mt9Vq1/rPUjpkdpXfI4aWMjMM4JtI | ||
| 638 | SGf1a6d2e6sdng8blerc0tYen92yLk24y3Q5q79nzcleM8TwZtrje9Y3XCK8usfalYsf+33nG9MS | ||
| 639 | zwy7Te+4nTXO3xpnRGW/OKXd2eJp/3g6oqnN3N/I/v56Unl5luhjnXuMT6ndyvszb6YgCdYUnnvL | ||
| 640 | bds30V0N7MynmGTRadHV7lnjf+J2L+0XZ7U7Wzxcy95n2mZbxyrv/5Ica+rnYDV6vbo/7VG/xePx | ||
| 641 | 2PVOBbiis/aLUruzxQMDzj1u/pKZ/A0J1u2frTV2P2ZvW/Fp0VjhkdPxY1sHBNPSxB5xLm9VPmbk | ||
| 642 | u1rpPSefEqw/su2WG2tTTNVKJr8+uyW8rz/UndjB1HR6Ld9yvGs8cz923Kxo7+9qjnXYenuMky8R | ||
| 643 | vmXQ2Xs/37bfs8Djz9+sftycpXp6y6feb2x9Sz1vQ7T6ZuNusHoHyep2r8RZmicDcfaOT+83rfY7 | ||
| 644 | ZrbMq5bXpXhS7Zbqv/Vv34/tluJfllnOh4quOHvn59j+uxRcH7r2o7c/tW+v5UdK7fa+32VsvarX | ||
| 645 | 0xJManvtXb6r2K28fbf097G4VvhlZ7b+ut16r/L++7qU+WYz4l7ntv4FrjKAh8V5lQGBAaY3t5mm | ||
| 646 | wd6R3P98aEWhVCaAL7nJPfJNEZbmWXcAgiY8bn7ZevslCdY3bZLTXWUwj4nzKqMBY8zwX2vCTT9N | ||
| 647 | SJkzW19ykzsAwDwkWAAAYV+YYK3+8vOUSFJS8V90HHYK+/h5ssczBXat8MRWvoCBWjXPsFhXv6mh | ||
| 648 | ObfCFyZYk+jd3lff268ef6+rj/Nsrvv8m/uas4MqjmcqvKvM/9+2LjGVX5Fgjd03N88elbrvb5r7 | ||
| 649 | Bye19/hcvf5dXTf4xz/eXp8eVdf7v5B19Ri/eXxmedDorfDgvtf3f37AufpAvMrTBVefgjhQT3v8 | ||
| 650 | lafk9Zavv7lTPZX3V/X2d6CeW2HT9P7MuGuelOqvPB2x8sDG0iMTl+Xvi3/77/HyT9HVQ22MvxLn | ||
| 651 | qnqnGuMvlW9ptzH+SPms7LzdWE+k/oH93bpaf78kdXxsaWLLul3a32+d47ws9rb0leKcNoc7M8Gq | ||
| 652 | HEgqC/TydWkF//FYezJsSz3DE2u1FwPlS/HvXU99h1mtuau/vfXcGrZXS/2982RgnCtTqH0elqS2 | ||
| 653 | b2+7pXHbMv4by/fOh8j8GRCft3vE31t/7/5e3+/a4/lt62rq+NjYxE77Rde61FJgeF6dYqJLhC1b | ||
| 654 | 8WOZxqkQX0lb6tyj0WC1pXp2CrtLPIaBCiPzc3sYEcPtzjAZbvuM8ylrwiR1HtbuHvvdL1lXn+Ur | ||
| 655 | H7zK+hM3bUfOPIP1KP8rV9MmpK8q8ZdE+jXQ7lT1B+06TzaOw/yjt93q+D9e/n2x5bfP4+N583qg | ||
| 656 | Omuez7a+peI5a337bevqDPvRU2V/j9Q/UH4eJ9+D9dwqtz+n3SkHp0f/BexS/KuCB5uudiesP2Xv | ||
| 657 | 2K4yDmeZ7RvzWDzHb9/Z5tLeZ2vG6rGurjrgS8uc++kVTfFP5XQlv8cEM/CR4+Pfu92ptsuJjMN3 | ||
| 658 | s33nZF3l6s68B6sx9e7K0Len8/d/7NrWWZ9tqfai52Pj8+SAcfjYxGzbohLP659+TgbXDyF77wIb | ||
| 659 | x7ZxEdhutsslpfojcVpXt9fz8c2NdQ6Uadnft9T/sfxs6+TTX7fOf7zwdQBLA9o+0G+Lcv39+q8n | ||
| 660 | noUrPy4o3RdSf38g/te/rvbrLc6P5d+aGG63sZ56/SX1dofradnujfV3zZOP9dfjXG33taqf8qtX | ||
| 661 | pXedJ1vmeWXcPgZZKT8Qf33cluXr/WqMv64+sJF5e2vbv1rGs/R++/7bvr/X5/OSdbWxnkf1fsd6 | ||
| 662 | E737UUuolf391jw+j8XNaql59fxUaY9o0JcvnZxgTWXgwAMczI4JDDsywZriHqxJPP58YodFHAAY | ||
| 663 | I8H6g6QKJmcnBS5hogeNAgB8BwkWAEDYNyRY0/5E87t9HPbtBQDgor4hwaorHcUPO7qfHgARthcA | ||
| 664 | 7b4/wWJac96tLJECYLuTf0XY+yDBlqqWj7goPbVs9UGRvQ9eqz+QsOVRYWMPTuyKMzXOpcIfx6f0 | ||
| 665 | fks9W+JsrOdj5Z69BECXMxOs+pOOWx7EXP/s6vNtK++X6hl+AGn7g1h72+0qnxrn0vPZxup/e+rY | ||
| 666 | TnG21POxctkVAL0mvUTYezxLHf9a6lmma9tb36O/qTJbPthVf6XwkdsXALbzoNHPlv80Uosv+3eE | ||
| 667 | 6lL3LR15/9PG05AAUCHBavK8lnRzFmRNZEyWl/a219li4IY/AKiTYHUo3dJ0W7tZ+/ecvvoOthcA | ||
| 668 | QZPeg3WW1bMmvadSBrKrgSYiZeofr9TQ+KfhGNo/WI+zq8W3qurZVapdAL7SmWew3n5HttOpgtId | ||
| 669 | VKvvr14tqscZCbu33a7yqXF+a3T1dUuct8KTMip1Dsd5a+jv8K9EAaDkr9ut9/dr/77+sgthZ4Xd | ||
| 670 | 2+5Fh3daEiyAX6L0vKE2fYcG92Dx2x1zJhWAX0WC9a+zjqxnPfSLJ0MKQJab3AEAwiRYAABhEiwA | ||
| 671 | gDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbB | ||
| 672 | AgAIk2ABAIRJsAAAwiRYwMXc7/fV18B29q+UGROsj1t0p00+XO1Fp+BFw97bclhKA3W/31f/NDaw | ||
| 673 | Z037/Zwb8OWGa1h2HmLcSPn7xLZX5/Hj8Tg+Erb72Zrtm+9+v196W189fr5jC35HL7brXX8G6p9q | ||
| 674 | nFPxzNavL3PmGazHP95et3xw59D6zBbPKb54EHq79sVD0WVsHGY7fzBbPO3q43/dfq0K7nT2X1LO | ||
| 675 | PINV99z/36b76jeV18WiZfeolF9t92P5xnhSca6+//NdpDRuH5vYEufHyt/ifH0R79drybcmPo7n | ||
| 676 | svKBM3PL8gPt1uu/LcbntcDHI+vqeJbqqZdv308r5XvH4bXYx3pa5s+y7+3xtPRry/tb9uvGxa1r | ||
| 677 | u1fiL0XSVU/v/Kw33V7/60dWg1wuJpF4euPsXT8r9ZfqKb2m16QJ1utkfZu4r3NutUDjAeZjW28L | ||
| 678 | Tenj7fGk4uyNv7GJ4Th7419tJduvtyaeS9XH8Vx+rV/dvq8v3oIZmw/Ldlf1jkOqnpZt8XG/KJXf | ||
| 679 | qVMt8a++MxBP136U2q+3zMM9+hWsJzIlxupfjltpvUrF0xtn7/rZuw4TNONN7rdtWXPvZ/fO1lN1 | ||
| 680 | PuupVLil73HByg9bAloaejwezxUqvnEjxeL1lMpPNd8qDVXajRxg9l6vVsvsMQ9b2j2gnki7wXVy | ||
| 681 | D8Pb/YB2SZn0DFaXx+JK0LQaT1QcVs/e9ffW01J+/q28tPf22uKK45nSlV2tnt1cFns7WzAc22yu | ||
| 682 | 2K9T1pPGebKH1f5e6Pj4fb4hwbq9nO28zT2NIrEtT/lur/PNWXHOvO22+NZ+RTz6bzDKNl25uLbx | ||
| 683 | 9PZU2z04zlP1q+SAdXLViYNTP9M8//Hx+0x6iXDMz6nyq3y7gojXOX/dyb/fda6P7Za+93/loehb | ||
| 684 | +3W8y+13jo/H+4YEa+OMOetyW+Ty2QF9j4zPQCWnLAQHNLplO5aK/aybwftVjx/8+z9StVX+983q | ||
| 685 | UScbTyWGg4e63q+d9tP4rQJ73HswYMt+d9hxJ9tQdqf4ehe7RPg2aZ73eL5u8o9zPVi+K55Uu2+n | ||
| 686 | +rdM99WrBr1x3hrGYRnn8s6AgXa7DIznar8qhudD43asXOWJ3Kmdmldd47a8lDPWl0r8H6+OvV4r | ||
| 687 | 3COeW8M8D87/1fEv9at3uw/E2bvOfCzfsp8OzOfKvF2uV8uw67LbvX39rNdf6hcRf91uvb/v+Pd1 | ||
| 688 | aekJfpMGulxu70slNI31nx7PWc7q18bxv4qLhv0LvW6p/q+RfZv4YmewgKVdz/ztbe8zl71miyfl | ||
| 689 | W/t1IuNJnQQLLu/qi/uu8Q9UfvXxLDmlX72NXmjwLxQqp/iGm9wBAKYiwQIACJNgAQCESbAAAMIk | ||
| 690 | WAAAYRIsAIAwCRYAQJgECwAgTIIFABAmwQIACJNgAQCESbAAAMIkWAAAYRIsAIAwCRYAQJgECwAg | ||
| 691 | TIIFABAmwQIACPsVCdb9ft+1/N52ime2bgLA1/j7xLbfDvCPx2NjbRtryBJPr/kj/LVed1XbCKDF | ||
| 692 | mQnW7c/Fer/ja2+1sx1CZotnTrPlZ7PFM+ytI1/TL4BdnZxglax+Y/5Z2Z9/en3/9cXb6l95862e | ||
| 693 | UvlSu5U4K1WV2i3piqdSw2pVr38djrN3fFrqXx7U6/W0b9+WtpabsjH+SDyl8qU4K/tFV78kUgBB | ||
| 694 | WxOs9sN8V52VA8Py9ethZlnb67HnY/2r5UvtluopxTN2AGuPp1JDqVhXvyq66vlYf73Aaj2VARlO | ||
| 695 | FHrjT8WTGv9U/dIsgAGbEqztK+/qN+lKtXus9Y1ZzjHBNEo1vWs9jZXXs6v2evbWMj93bXdjmQin | ||
| 696 | tQAaTXQP1quWH7jNsNBf/feJJak4B8andMVw13ZXPc8drp752y+eSruNH3+tp3TWbaBm2RVAuxnv | ||
| 697 | wYocDA4wEOdVjk+ROMfGp+WK4Wvh1YCzZ+be0p0D4lltN+gq8xDgun7Fc7C4kNV7zurl904Xfppo | ||
| 698 | jCoYT1e7kebefg+xLHBMJABfYPYE64CjS0sTH8sMxDntmbk3e4/P8k+VrGL1fv8fw7GVCo91fHs8 | ||
| 699 | kQH/8TOS9Ut7b/dBVspfZcYCzGDGS4Rvl1q6jiW3ws/mX//0VufH8suQWuJcxlNpt6QUz4D2O3sG | ||
| 700 | 4uwan5b6X68Vlj5b+jVcb/y9cR4ZT0u7verxOE0FEPHX7dZ7d8jnMl92M+yXdSfurPHpfdzAb4tn | ||
| 701 | o6vHD7B0//OhNp2f7lsSZzyDBS0GzrTtarZ4Blw9foB5dJ/BKnldjX33BQBmc+QZrNlvcgcAuBwJ | ||
| 702 | FgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLAOvvCyoAAAjzSURB | ||
| 703 | VCBMggUAECbBAgAIk2ABAIRJsAAAwv4+OwAAYAL3+771Px771h+TidMZLACAMAkWAECYBAsAIOyX | ||
| 704 | 3oN1f7nS/Bi9Knz/83L1lnqGPwvAPJbr+Zes8I/HH3dovf0va37RGaxnPvQz3Z/uG2ZJqp5V8QoB | ||
| 705 | 2MPXrv+vqWFXmvgFOeVmv+UMVuN3iMiZrUo9H+t/jfMnafuGrz4A36uybr+9fn7k43FhivW/8TTV | ||
| 706 | a5DP8ve7s1y/IsGqT9PVPeHjp9qbe/7vx/qX70yxjwFQ0P7tvfe4cPL6v0yPVnOmyqXDX59jff8l | ||
| 707 | wl0n6P3F617R8tnG6/R7XHwEYLvVdfu5aA8cfVa/Y28MckQqMfrJsX6rLz+DVZ/fz4k7nIGVvnn0 | ||
| 708 | 7hIfz7E5jwUwlcqyvLporx4XnilUV1X7qmRXAyelfvF5rC9PsOpT83mGNtvo8pTvx4/U45RdAcym | ||
| 709 | N/VpORIty5yw/mdTot+aXd1+wyXCq1xiK8UpuwKYU/D4svpr9NPW/8qlva6rfr84u7r9hgTrVt0H | ||
| 710 | 9s69KvUv/zTR3gVAg7Ec6/WxQZUyZ67/22+f+t3Z1e3rLxE+vZ7Lfd0fSq9vbTdmVX5eO1b/a5yy | ||
| 711 | K4D5tVwrLK3/pfenWP9L1wpfc6+3POxZ+NdnV7fb7a/Uvxr95whPMDMAgHZ7p0QTJAZtP0fLxPkr | ||
| 712 | LhECABzpt1wiBABqJjjD9E2cwQIACJNgAQCESbAAAMIkWAAAYRIsAIAwCRYAQJgECwAgTIIFABAm | ||
| 713 | wQIACJNgAQCESbAAAMIkWAAAYRIsAIAwCRYAQJgECwAgTIIFABAmwQIACJNgAQCESbAAAMIkWAAA | ||
| 714 | YRIsAIAwCRYAQNjfO9V7v993qhkAYHK7JFiPx2OPagEALsElQgCAMAkWAECYBAsAIEyCBQAQJsEC | ||
| 715 | AAiTYAEAhEmwAADC/rrd9n5mlSeOAgBXkcmLnMECAAiTYAEAhEmwAADCJFgAAGESLACAMAkWAECY | ||
| 716 | BAsAIEyCBQAQJsECAAiTYAEAhEmwAADCJFgAAGESLACAMAkWAECYBAsAIOyv2+1xdgwAAF/FGSwA | ||
| 717 | gDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbB | ||
| 718 | AgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABh | ||
| 719 | EiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUA | ||
| 720 | ECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRY | ||
| 721 | AABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBM | ||
| 722 | ggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAA | ||
| 723 | wiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQL | ||
| 724 | ACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJ | ||
| 725 | sAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBA | ||
| 726 | mAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2AB | ||
| 727 | AIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJ | ||
| 728 | FgBAmAQLACBMggUAECbBAgAIk2ABAIRJsAAAwiRYAABhEiwAgDAJFgBAmAQLACBMggUAECbBAgAI | ||
| 729 | k2ABAIRJsAAAwv4+OwAAgOu6r77rDBYAQJgECwAgLJlg/c///lewNiBi8h1z8vAAxtTuwVpd+P7z | ||
| 730 | 93/vFsz3eB26Lxuxn65t79T//O9/HTwyy/ncEsDxcY7ZO87ZxqEUz2xxAr/WSoL1XKGe69TGNeuX | ||
| 731 | LHnPbr7197DuH9PQf/7+72udcngdllPm4enz/zfsfQCzeU+wGg8GlTM0zz+9HtW6jjGvNbydL1lt | ||
| 732 | t5LQlOL8GH/vMamlgz9lluMzEOfq+73jPNBupJ7nm8uhnmq79MZZqmfv7VKJsxR81/4ysL0GzuCu | ||
| 733 | jv9qnKV4UttrLH6AN38kWO3ZVWWBXn3de4x5OxX0XAq7zgxVFujsGaZ6DR/HqjfOSvxd45wan956 | ||
| 734 | Vv860O5HY0OxJc7I/E+N52vTW9rtHYeB7Vgat1WleFLbKz4Pgd/p3wSrfR1pTCaWf5pzqVpdptut | ||
| 735 | LvSl0y2lQ+BAnJViY+O896bprT++XW7lMxOpvkfmf3Y+tNtpAgS7HDdzbMDV/V+CteUSRrudcqzX | ||
| 736 | apffPkvlb3veqf16LaPxpGBvu5W/No5zZRyy8TQ6bLts19Lf1fS6/STxYGQNeveXir33r1NcPX5g | ||
| 737 | Ev+XYG28hNHY2PFnsErN9SZAlfornapfu3kaGM+uCj/WsxyHjWebhh2zXbYbq3n4EvxAWwOC8zC1 | ||
| 738 | Hc9y9fiBGfz7HKz2ezXGTHh98D9///ey1//zv//VNQ6rNWTiGzIwzqvjcKKdtsu5Jpz/e5ttXvW6 | ||
| 739 | evzAuf540OjAatKYW+x9dPmJvN7KM7aP19fGWm8p+bFYpUBlbF9ft8efirmx/Ja+33beLlu0NDE8 | ||
| 740 | /wfmQ4uP+8tA5Y3711hzR2Y5Miog4v0xDS3XVl6PW2/HsLc//bxIZVfLtsbK99bTHtt//vnVVeVm | ||
| 741 | 6uX4lMazN/7ecR4Yn7eDaL2/9XFe3umy93a5LY6dLU1sj3PLdmmZD6U4b4Xt1dtuqf7g/tW1X1T6 | ||
| 742 | 2xVnSzCN8QMs/XW7Pc6OYS77nWz7hReJgoweAFO6r77rH3t+5yg+J9sFAAAAAAAAAAAAAAAAAAAA | ||
| 743 | AAAAAKDq/wP4EB/RpJmzCAAAAABJRU5ErkJggg== | ||
| 744 | " id="image382" x="-1201.4072" y="264.93607" /> | ||
| 745 | <image width="169.3797" height="127.03477" preserveAspectRatio="none" xlink:href="data:image/png;base64,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 | ||
| 773 | mn+u1XOGN9bu3bd132zWM7PC6vu4/4Tc8/ITCgwsP7Buq0WtjtO/4ZnZUKXL39anXxcNmu/bd6j8 | ||
| 774 | K105TcPHcT3ls79CmrNCbTlt203tV/nfUg3bnf3FM31JQ2v8Qe9Lav2j35eo82dW2sn1XL58c/1Z | ||
| 775 | PQOPw+r5FnveLu3Z39lrU9ut2q9M+SGi7j+19Yy97+0v/0HXRWD55ft19HlI13W/uq72c/Tv43Na | ||
| 776 | OLj2OHuX38H7CEtvvS7eul/H6X9OTpFYq+6QXt+CRd4l10ngX2ZcyPsIS2+9Lt66X88lYN3dJdeJ | ||
| 777 | i/MdvI+w9Nbr4q379VxfNMgdAOAcAhYAQLAHByzfeij0+gP1+h1k1c4ZDY6Yb+JWp+KtKrOpvLap | ||
| 778 | 4xy7v886eiXutkd3u16O8OCAxaPd7dJqmI4rdZe/26690ufLH+WDTk6Ylqm2Ps6fBrXH+W6Oft+f | ||
| 779 | cvI8/X0sJGDxeLf6HsDrbxmEOOH8aSvqKZ/QS4+49C68bzzi+LzMGd8i/GTV6Zxm06fGx1XLZ+dK | ||
| 780 | yNdT+8XEvquzYkwXptbPbGK1npnyU7tcVX6XOHTNx79web6SywkGG97H1UKqzrfY+lSpfd9r6xNy | ||
| 781 | Xi1nIyy5Lo6rf63M+9tVXhfNmz6inOUNZ3nLqr0uCt+U1XL23Of338/33wcy9clvtLz8WrWfF9MH | ||
| 782 | q4e05Djf7fp9tJOmaZhd+Z/HqYBSsnz6zjUEnebK7ym/dn8zj2vrGX78C+u/avVVDeWMpS3/5q7a | ||
| 783 | 39j6lIt6v6LKz5hVYLwFX1L//AfJZuVTm9hTz9X6HH3fyJfcdl0UVrLkXAq/n+ff9/33gVR9Sg5C | ||
| 784 | Sfm1asvPnOfd2vF5yvX7aCcFrPCDuHo5HbStg4z1zFR4z75MX3vEMbnzcS5MZvsLOcjRm350+fkP | ||
| 785 | koai7lOfo0XVMFVOc/mZ+/ms8KrjfGh9ora101X39j3HtnvI9bLfxRONpk7iqpN7KP41q9uqvZgv | ||
| 786 | kTnOT69/yt3264j6nBm27nY8U55Szzvb874fffyf8v7eqp4v+Jw938UBK+ovoWnb4+Pe/mVT6oWV | ||
| 787 | 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 | ||
| 871 | CziOLkJgW0gQiYoygZHo0M5N4JtpwQI2PL2ZJx+htGMBRxCwgA1PjyBVfYgAIXQRAts2u9Ie2tEm | ||
| 872 | XQEHEbCAIg8arpSp5/Qp6Qo4ji5CoNS0r3CWt2ZfzVsuLym5W8zIMH2QL2o2d8Pq4y79bUeAWL+6 | ||
| 873 | ru4WM70juUMBAE+Xmjnvp7rAo4sQACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBA | ||
| 874 | MAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEEzAAgAIJmAB | ||
| 875 | AAQTsAAAgglYAADBBCwAgGACFgBAsN87X9/3fUg9AABeY1fAGoYhqh4AAK+hixAAIJiABQAQTMAC | ||
| 876 | AAgmYAEABBOwAACCCVgAAMEELACAYL+6LmouKzOOAgBvVZeXtGABAAQTsAAAgglYAADBBCwAgGAC | ||
| 877 | FgBAMAELACCYgAUAEEzAAgAIJmABAAQTsAAAgglYAADBBCwAgGACFgBAMAELACCYgAUAEOxX1w1X | ||
| 878 | 1wEA4FW0YAEABBOwAACCCVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOwAACCCVgA | ||
| 879 | AMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIWAEAwAQsAIJiA | ||
| 880 | BQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOwAACC | ||
| 881 | CVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIWAEAwAQsA | ||
| 882 | IJiABQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOw | ||
| 883 | AACCCVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIWAEAw | ||
| 884 | AQsAIJiABQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEA | ||
| 885 | BBOwAACCCVgAAMEELACAYAIWAEAwAQsAIJiABQAQTMACAAgmYAEABBOwAACCCVgAAMEELACAYAIW | ||
| 886 | AEAwAQsAIJiABQAQ7PfVFQAAeK5+dakWLACAYAIWAECwyID1n//+K7A0IMTNL8ybVw+gTW4M1uqN | ||
| 887 | 75/f/z6sMu8xPXQvO2KfXdu/U//5779OPjLL87mkAufXs83R9bzbcUjV5271BL7WSsAa71DjfWrn | ||
| 888 | PetLbnnjbs7297TdP2dD//z+97OaHKaH5ZLz8PLz/xuuPoC7mQeswg+DTAvN+NT0U63qM2Zawqy9 | ||
| 889 | ZHW7mUCTqudm/Ws/k0p28LPO8vg01HN1ee1xbthuSDnjwuWhvtX7UlvPVDlHv59d7LgAAAJbSURB | ||
| 890 | VC+ZeqYqX3W9NLxfDS24q8d/tZ6p+kS9X231B5j5EbDK01XmBr36uPYzZtYUNN4Kq1qGMjfo2Bam | ||
| 891 | fAmbx6q2npn6Vx3nqONTW87qsw3b3dR2KPbUM+T8jzqe003v2W7tcWh4H1PHbVWqPlHvV/h5CHyn | ||
| 892 | vwGr/D5SGCaWT93zVrV6my63eqNPNbekPgIb6plZre04H/3W1JYf/r506ZaJqH0POf9jz4dyB50A | ||
| 893 | gbsc7s51A57uT8Da04VR7qCMNS12+ddnav3uyJHa076MwkbB2u1mni08zpnjEFufQqe9L/uV7O9q | ||
| 894 | vC5vJG6sWYHa6yXj6OvrEk+vP3ATfwLWzi6Mwo2d34KV2lxtAMqUn9mpfN/NqOF4VhW4Wc7yOOxs | ||
| 895 | bWp2zvuyX1vJzV3wDdtqEHgeRr2PV3l6/YE7+DsPVvlYjTY37B/85/e/l3v9n//+q+o4rJYQU78m | ||
| 896 | Dcd59Thc6KD35Vo3PP+PdrfzqtbT6w9c68dEow13k8JscfSny6fm+a2MddvsX2vbesmam6tlVsgc | ||
| 897 | 2+nj8vpH1blw/T373h38vuxRsonm87/hfCixeb00FF54fbVt7syUI1EBIebTNJT0rUw/t2afYbOn | ||
| 898 | Pg+i0tVyW23r15ZTXrd//vetq8xg6uXxSR3P2vrXHueG4zP7EM3vb/44L0e6HP2+dIvPzpJN7K/n | ||
| 899 | nvel5HxI1bNLvF+1202VH3h9VV0Xmf2tqmdJZQrrD7D0q+uGq+twL8c1tn1hJ1EgRw+AW+pXl/qx | ||
| 900 | 5zmf4vfkfQEAAAAAAAAAAAAAAAAAAAAAAAAAyPp/bzD23bYiiR0AAAAASUVORK5CYII= | ||
| 901 | " id="image394" x="-1032.0272" y="264.93607" /> | ||
| 902 | </g> | ||
| 903 | <g id="g557" transform="translate(1003.0351,-73.34192)" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-04.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75"> | ||
| 904 | <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg | ||
| 905 | AElEQVR4nO3dO5bjOLYFUOVbadTw2tQQZfbw2mjjGdGlUvIDAeAhCUp7rzKiFBRwCfBzgpSYv263 | ||
| 906 | xw0AgJz/O7sAAIBPI2ABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 907 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 908 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 909 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 910 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 911 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 912 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 913 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 914 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 915 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 916 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 917 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 918 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 919 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlY | ||
| 920 | AABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGG/Uw09HqmWYF/3+/1he4Vt | ||
| 921 | 7Edc3f2+b/uuYAEAhAlYAABhAha8c7//77/IYh/v6iNw9fonPmx14Dpin8GCT7b4WZP7/Y/Xf35u | ||
| 922 | Op9NFt7yiZZJMZVdz9+y9nqq3yav4/PsZW3QJpU8/zc4yB1S8wJcjYAF53kmgONPqI/HchZce/14 | ||
| 923 | a4Hpdlt9fU3r8icaZ/yBbQQsGMxPAnieZSfh4Gl+RWd+8WNx+WCda/2+/vawerKa6m+dl+5iWutZ | ||
| 924 | m5Tb7Mrf2luAXrsErLu/wGCL16ssr7e6Fq/ErF0GK1wBiihcfmuqv6m7YzTV3zovW4ppref1UFwY | ||
| 925 | /7Wf35fmUM/1HPZ4kb2uYHk+CsO6wFmhZvdpui92sL27br0S1rr8JQ5flStSs7X3rq/jPJdz5PHf | ||
| 926 | LUK4iOfJsukT6EPpq2d+96r14tCFPoPVpHU89wxbwISABdfx+rW4tyfC+S2h0/WdvNe+nvmTOL82 | ||
| 927 | EHTM79eOFZzBc7Cg11mnq8fDd80ABidgQa+DI86W7gZMY1seGPa0U9AccLjK1gourMjl1hGuxi1C | ||
| 928 | OE/TN/knYWKy8PwTWpPv3k++ULbYb8eTBeo/GVauv7x8TZAqtN/xIffFD34tttM6LwWL41/Tb+vP | ||
| 929 | lfUAG/y63TK72Z9HM//KOuNq3j4rHxHkSUJ8E8d5ruh1u937Mq4rWPBOx1fVAPhuAhZfx5/dsJ39 | ||
| 930 | iOtbu4SV2bZ9yB0AIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgT | ||
| 931 | sAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwjnO/38fs96zCWl2lzlZ7r9dO | ||
| 932 | 7X/qdJzOwO7qY46HV3G/3792SE8OWPc/TX51VlURqfpb27n6uO2tYzwX39J61Lj6vIxW/9WP2pcu | ||
| 933 | /nad+q9SZ8op61s+jz8ej8fjcXxVIzg5YD2H/pvn4HRXGflT6lzrNFjM3ut1lflt8pEr9aNv1b4t | ||
| 934 | SezngzetnTiPr/l9dgELnkeKnx9qJuz14PK6fNPrzxcfj8ek67V2Oup/7aWynspx6Oj37cKV/T5H | ||
| 935 | 7Fa3XvPuKtdu0nhrv4Wm5st36JjH+vEvrO/bkjbOb01TW8Yzsr6Trah+o6rvN7X86w9vt4ea9ps2 | ||
| 936 | hsX6J9311d96XO2os2l7WKvztj502/eXwvJN47O2vmvz1TEvHceTXbWex8c3YsB63bxqli9scE2v | ||
| 937 | z7t+boJNB+5C/ZODV7me1nFo7ff5rsWLumv/u6hpvZpaLtTZ2u/a+HSs76K+eWwa/8I8rtk+v6nt | ||
| 938 | eU12feu19ptavnV7qGm/dSeteUtwP1o8rnbU2bTKZx0PU+ed1PqeuH+9/tC9faaOz6cYMWBttPfo | ||
| 939 | b2l/7ZC6oZz+foPvPWuLj9SWKn7wedyjzZH3tSP73Xu/HmHeRzirjbCrHjlul96/asL027df3ScE | ||
| 940 | rMf6lef534Ll11vbT2mqZ2/B9T1lvTrqT9U51Dyu+bbtOahmvSZ/be9ZTpvWeT9xPxrKAfvL3lq3 | ||
| 941 | 21N8wDjPfULAur2E5duf07M2VX1/hew0/fNLoNn2O6TW99wrEN2Xpvs6HXAe1+y6Pe/U5gia1mvv | ||
| 942 | 7eHR/gGa1nnvW/7z7L2/7O0qNV99nOc+6jlYj8djfgf9Qu2P5urre/X69/Zh4/O6Lh+zUm/9TGLH | ||
| 943 | W17DWXncPmw76WYcjvFJ4/wJAatyJrpvFx450yNsVTvVcNiqbenoG+4VHlzbkd39HJe3fwy2puam | ||
| 944 | 9dpvEO5/21LD4rhtrHnkXaDJieOwx7mp/nR5iQPF8XU2OfkWYeGLBvV3ZCdp97l86+ut7Ve+q6n9 | ||
| 945 | eXLf9ZMTi+Pft76FSibtvFZYfxdvXmdrv/Pe58tP3rvW79txq5zHXcc/2/72/TG1/O3dcePt29/2 | ||
| 946 | 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 | ||
| 1044 | BQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiA | ||
| 1045 | BQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiA | ||
| 1046 | BQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiA | ||
| 1047 | BQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiA | ||
| 1048 | BQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhGh1u2IAAAR7SURB | ||
| 1049 | VAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEA | ||
| 1050 | hAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEA | ||
| 1051 | hAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEA | ||
| 1052 | hAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEA | ||
| 1053 | hAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEA | ||
| 1054 | hAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEA | ||
| 1055 | hAlYAABhv88uAADguu6Lr7qCBQAQJmABAIQlA9Z//vuvYGtAxOA75uDlAfQpfQZr8cD31+9/71bM | ||
| 1056 | 53gdug8bsZ9V275S//nvvw4emfn2XFPA8XX22bvO0cZhrZ7R6gS+1kLAeh6hnsepjcesLznkPVdz | ||
| 1057 | sr6Hrf4xHf31+9/XuuTwOiynbIenb//fsPcBjGYasCpPBoUrNM9fvZ7Vms4xry1Mrpcs9lsINGt1 | ||
| 1058 | vq2/9ZxUs4I/y8zHp6POxddbx7mj30g7zxfnQz3UvLTWudbO3vNSqHOt+Kb9pWO+Oq7gLo7/Yp1r | ||
| 1059 | 9aTmq69+gIk/AlZ9uiocoBd/bj3HTC4FPQ+FTVeGCgfo7BWmcgtvx6q1zkL9TeOcGp/WdhZ/29Hv | ||
| 1060 | W31DsaXOyPafGs/Xrrf02zoOHfO4Nm6L1upJzVd8OwS+0z8Bq/44Uhkm5r8a81C1eJiut3igX7vc | ||
| 1061 | snYK7KizsFjfOO89Na3tx+fltn5lIrXuke0/uz3U22kDCK5y3Mi1AVf3v4C15RZGvZ0y1muz878+ | ||
| 1062 | 15a/7flJ7dd7GZUXBVv7Lfy2cpwL45Ctp9Jh87Jdzfouxuv6i8SdlVVo3V8K9t6/TnH1+oFB/C9g | ||
| 1063 | bbyFUdnZ8Vew1rprDUCF9gsrVb5389Qxnk0Nvm1nPg4brzZ1O2ZetutrufsWfEdfHYLbYWoez3L1 | ||
| 1064 | +oER/PMcrPrPavQZ8P7gX7//PV/r//z3X03jsNhCpr4uHeO8OA4n2mlezjXg9r+30barVlevHzjX | ||
| 1065 | Hw8a7TiaVGaLvc8uP5WXe3nW9vb+Wl/vNUu+XaywQGFsX3+urz9Vc+XyW9b9tvO8bFHTRff237E9 | ||
| 1066 | 1Hi7v3Q0Xrl/9XV3ZMqRqICI6WMaau6tvJ63Juewya9+fkilq3lffcu3tlNf219/f+uq8GHq+fis | ||
| 1067 | jWdr/a3j3DE+k5NoeX3L4zz/pMve83KbnTtruthe55Z5qdke1uq8rcxXa79r7Qf3r6b9orC+TXXW | ||
| 1068 | FFNZP8Dcr9vtcXYNY9nvYtsX3iQKMnoADOm++Kp/7HnKWXxM5gUAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1069 | oOj/AZvLm3jv9XPLAAAAAElFTkSuQmCC | ||
| 1070 | " id="image539" x="-1160.9553" y="563.78479" /> | ||
| 1071 | <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAg | ||
| 1072 | AElEQVR4nO3dzbajOJoFUEevGOTj1dCP6GE9Xg1q0IOb5SQAyRIcfr336tXrlgNLH0KGY8Dkr8fj | ||
| 1073 | 9QAAIOf/ji4AAOBuBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1074 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1075 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1076 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1077 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1078 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1079 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1080 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1081 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1082 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1083 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1084 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1085 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1086 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAEL | ||
| 1087 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIOx37xtery3KgP08n8+XeQzr | ||
| 1088 | +BxxV89nph1nsAAAwgQsAIAwAQs+eT7//r/IYrd39RG4ev0jN1sduI7ue7DgG83ea/J8/vH6z99d | ||
| 1089 | x7PRwmvuaBkV09j19C2l11P9dhmOz7uX0qCNKnn/z+AgL5DaLsDVCFhwnHcC2P+A+nrNZ8HS6/sr | ||
| 1090 | BabHo/h6Se/yBzrP+APrCFhwMj8J4H2UHYWDt+kZnenJj9nlg3WW+h3+6271ZHXV37tdFhfTW09p | ||
| 1091 | ozwmZ/5KbwGWWhWwnr5pwRaGZ1mGl7pmz8SUToNVzgBFVE6/ddXf1d0+uurv3S5riumtZ7iLrox/ | ||
| 1092 | 6e/PpTkEcB/xx46sPYPlOShczgWOCi0fq67rYjvbuuveM2G9y19it9a4Ii2zfen62v9zG1scF1wi | ||
| 1093 | hIt4Hyy77kA/lWX1TK9e9Z4cutA9WF16x3PLsAWMCFhwHcOfxX08EE4vCR1u2cG79PPMn8T5tYFg | ||
| 1094 | wfb92rGCI3gOFix11OHq9fJbM4CTE7BgqZ0jzpruTpjG1jww7G2joHnC4aorFVxZkcutI1yNS4Rw | ||
| 1095 | nK5f8o/CxGjh6R1ao9/ej35QNtvvgicLtN8ZVq+/vnxLkKq0v+Am99kbv2bb6d0uFbPj39Jv79+N | ||
| 1096 | 9QAr/Ho8+j5mf+61/NfUuZ7uedv4iCBPEuKb2P9zJ8P5nDq96wwWfLLgp2oAfDcBi6/jazes53PE | ||
| 1097 | fZVOYfXNeTe5AwCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIW | ||
| 1098 | AECYgAUAECZgAQCECVgAAGECFgBAmIAFABAmYAEAhAlYAABhAlbR8/k8uoRj3H7F77GC91iLx3Er | ||
| 1099 | cpt+rzITdq7zKsNScvX6R262Oo32CFjTkb3TWO+/Ltker7Itns/nqUrtLaZU/9nWq+QSRT5ydV5l | ||
| 1100 | u6RcfT5v2ulzYPbF0euzhZWW30dq+9LFGSyu4fV6nbCp9Z0eUgwfXWi7XGU+L6vz8MP88/l8DQzr | ||
| 1101 | Kb1e0rv8gS40/8/s9w59/Eym9wYb/T1cbLrA9H9O/Szwbmr03mn7La+3TK/hV5PG9uvtvNeiPj6j | ||
| 1102 | 967vd1r/ozAUve13bZfphq5v+t55Mux6+sauOitNTZdfIDI/S+1Uxi2yvpX53FLq4s/vsu2y7CPf | ||
| 1103 | uHxLU4v3e8N2Tj6fF9e5cj9caiq4Xlvb9HOxuJjeekob5TGZ/727uJPbI2CVLNuhfGzq/Xep/ZbX | ||
| 1104 | G7+OzJa9YL1GTb2nWr2d+gIf+y3V/+gcz4pl7ayZCR/NfnfsqjO43Wel5ueyLyrT/7lgfWfnc2PX | ||
| 1105 | iz+/C+os/f2xyJblG5taOdvPP5/X1Llg59nVfmMX0+72sennYk0xvfUMN33q83gJOwWsd1zYaNTi | ||
| 1106 | bc7uDnbWtbvfs+v929laS52NO/p9LJifveXtvDqHNH7U/Ny636vM5zOMwxq9Z8J6l7/E/rNxRdrP | ||
| 1107 | WdzJfmewtktXFaWNenh4alSpf3Ykt16vVPuXGP9XzxWuH6can976D1zfrZ1quxzlxtu317L1ek6u | ||
| 1108 | XvWeHAqeETyV3vH8nrB15CXCHZQ20iU23vRU6vvvUlq9yjfCS4z/Y7ADfTTUXNley/pdr6v+xcuf | ||
| 1109 | 3Am3y1GOms9dXtvfiLOs2eHojV6/U1rqtWCefM9Y+RXhVZ3hIuaxhiOw6VC8Xq9Lj/ao/o/jdvX1 | ||
| 1110 | vSjzeeinyKOrgFXOHrCCe4Guy4Vn2/uUDoSVOr/hcuHPCGz09XFNYVvP25b2K8vMjtvKmk8yXF0d | ||
| 1111 | BWv+Gc9l7337hvnc3mPXkK7paP3CGwXWsx2GPlpwT87l1rHLkZcIR5NyeGF79tv2Fu2v73d6Z0Op | ||
| 1112 | /TX1l+oZnp1e1m/7nRlbrNdjbtymJY2+2Q+77iqj0k57ndNqp8uP3lvqd/b11Pz8WH9wfWcbbDd7 | ||
| 1113 | Vaj389tS5/S9s1ejurbLbMsL1nf2f9ZdYj731jnN/S1jst1+LPi56/28bPq5qIjsl1r+bqznun49 | ||
| 1114 | Hr2/Lfrn742+acECZuMyxi0lO5Jfu12WBSxY6Vl4rsSf+qbizW9y596+55tQlnGLi+QA2+XxZWc4 | ||
| 1115 | uDcBiwuz813GuMVFhtR2+WEcuIez3+QOAHA5AhYAQNidA9ZRv//cud/13Z3kh7InKYMf8c3xscFU | ||
| 1116 | j2ebSGerh3M65zxZ//CRb+YerFapH7O0/1b2rkrPm9i/kjXOth3P9mOrs9XT62z199ZTmp9d83b2 | ||
| 1117 | ZvPR53f4+uyv/0rLf+z6VOMPCwhYe+t6Xs4+dt6RlfbI13LC7Xh1qclwtkl1SD2l+dk+byuPS+h9 | ||
| 1118 | jILHLrS4+rBcvf4t7BSwSt+EKg/ca2+n8S0tD3yrf2Obfvmr1LPpepUar4zzcJnpKrS0s6DOBbq2 | ||
| 1119 | V6mF0vr2jk9kfadHlNkv943ba7b94R9rtlfXvFpQz8cu1vSbaic4nqVGSvu94P7nulLrm9oP9B6n | ||
| 1120 | SsvX26ms7PQZoV3H0wXPFStNzt76N92vXsIeAas+0O3nM5ZNlGn79Q/S9PXZfz1wvUozdcH4POa+ | ||
| 1121 | 0faOT1DX9lrTeEs78fX9mHSXtb9gfn4sb828KtUz7WK4QPs8rFvfTmo8S/U8Oud5tp7FdjsQbr2+ | ||
| 1122 | qePIguW75v9jMhTviBM57jQW37Jepfo/tr+mzks4+BJh18gu2AxH7XH23Bk1Tus1XWza/mn72rqY | ||
| 1123 | M+9WNppXa1Y5NVxnGPbGZLa+kY30noG4+hmL3ppLy0fWfc/jzstDX9e52D1YW4eJXql6Nm1n+KVn | ||
| 1124 | 5deFo8Y/0u+r57/GFez3wPYvbcH22rSdrZ1wfo56eRfWuzO50xmLMwT9lu1++PfDynHne/Z7VwpY | ||
| 1125 | Z9tIwXrO8KE9Q/tb9/v+tLe0ufV8O9t8PqGu7bVDO1s71fycrWr0+tXT0hXdYL/xPXPmzs/Bglmv | ||
| 1126 | 12uHS6uLDWs7bZF7Sm2vk2/3t6vUeXI+Rz+Mw4GuGrDa76fbupLZjtb02/XeysKja+fP53PZ181S | ||
| 1127 | F9NV3vmCRe/CLW9sXNm4UftrttcW9Vy6hjOsS4vddhrB9k8eBBd/jlau1FHHnZKjxqGl3zPPn/X2 | ||
| 1128 | uESYulHu9edvRBuvQ8/eQDBbT73O6R0SlXpm+30MJtOwqd7xKfW7YJy76jnqhsetx6dl+dF7Z8ft | ||
| 1129 | Yz2jKVSfzwvuq63Mz5YGg/Nqtp6KyOci2M5s/al6PvY4237X/qfU7+J6Wva3lfqPGv/ZxXr3AwuU | ||
| 1130 | 9v8lm26X9jIWtx+c5zfz6/Ho3Y//8/eB37DhS/iUwXq7fY5O/oE9eXkHepafTzHQN3RXuskdvsT3 | ||
| 1131 | fMOD7fgc/TAORxGw4HTsBGG9Qz5HJ/zwnrCkL3HVm9wBAE5LwAIACNs7YN37N5kjvSu70eB81ZhP | ||
| 1132 | 9T6p4XucczTaqzpn/dRNt1rl2Siz/1R6/ZxONZ8vNG73sOs9WM/qf+XxOXis/uiN9den/7TnJefe | ||
| 1133 | H2Vc/ccsl/4Ryivx7OlpC5cek5Wuvu4LPr+PuT1M+zMpHn/urz7uxBr3k+1dX2J7leo8qv6rjFvF | ||
| 1134 | DVbhck56k3tpHtRfP9sEWvAoo40qgamrz7ejbmGePQ3Q/kSiyvfMyvfPUjFdy5/TRcuOMw73s1/A | ||
| 1135 | Os/n/6eS2QfBlb5Zzi5ff7ra9MXe5Xvrma7jbFMtDwCsf8Nu/LLeO84L6vnYfukxg2um4qiF0tNT | ||
| 1136 | Pp6BKJk+5S/b/rCp6Ru7PheVpqbLt7zevl0Oqf/Sguu7ePmVZ/666tlnP1+vp3F+zjZe+VwvmJ+z | ||
| 1137 | u4XFxxcanfQM1tZmD5D1CT39u37abPqNtnf53npKb+xd39LrC04TRvrtHYfSnmhry4LOrNGKvHd5 | ||
| 1138 | wTMWs2dcurZXaT6s2b7t22v/+jey2wEstb5rlp9ustn93vCPj0Fnzf6hZfne/V5lfSv77dn5/LH9 | ||
| 1139 | rsLa26kfX2h30oDV+w24VynidC1/oN56jqo/vo16l2nfbXV5x5099z47dBQZ85WNr9leqTmzuICV | ||
| 1140 | tj6TFBGP9bPtTz9ZC77gHb6ffF3zPwtzlTrP76QBq7SBt97wLTv3k0++037hKAXlLdrfwc7p6see | ||
| 1141 | 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 | ||
| 1197 | ACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIOzX4/E6ugYAgFtxBgsAIEzA | ||
| 1198 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1199 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1200 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1201 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1202 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1203 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1204 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1205 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1206 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1207 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1208 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1209 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwn4fXQAAwHU9Z191 | ||
| 1210 | BgsAIEzAAgAISwas//z3X8HWgIiTfzBPXh7AMrV7sGZ3fH/9/vdmxdzHcOhuNmI/q7Z+pf7z33/t | ||
| 1211 | PDLT+dxSwP51LrN1nWcbh1I9Z6sT+FozAeu9h3rvp1bus75kl/dezdH67rb6+3T01+9/X+uUw3BY | ||
| 1212 | DpmHh8//b/j0AZzNOGA1HgwqZ2je/zQ8qnUdY4YtjM6XzPZbCTSlOj/W33tMalnBn2Wm47OgztnX | ||
| 1213 | e8d5Qb+Rdt4vTof6VNult85SO1tvl0qdpeK7Pi8LtteCM7iz4z9bZ6me1PZaVj/AyB8Bqz1dVXbQ | ||
| 1214 | s3/3HmNGp4Leu8KuM0OVHXT2DFO9hY9j1Vtnpf6ucU6NT287s/+6oN+Plg3Fmjoj8z81nsOu1/Tb | ||
| 1215 | Ow4LtmNp3GaV6kltr/g8BL7TPwGrfT/SGCam/3TOXdXsbrrd7I6+dLqldAhcUI+BqLYAAAHNSURB | ||
| 1216 | VGdlsWXjvPWm6W0/vl0e5TMTqXWPzP/sfGi30QQIrnLcmWsDru7vgLXmEka7jTLWsNnpt8/S8o8t | ||
| 1217 | 79QeXstoPCnY22/lXxvHuTIO2Xoa7bZd1mtZ39l43X6SeGFlDXo/LxVbf74OcfX6gZP4O2CtvITR | ||
| 1218 | 2Nn+Z7BK3fUGoEr7lZWqX7t5WzCeXQ1+bGc6DivPNi22z3ZZb1nLiy/BL+hrgeA8TG3Ho1y9fuAM | ||
| 1219 | /nkOVvu9Gsuc8PrgX7//PV3r//z3X13jMNtCpr5FFozz7DgcaKPtcqwTzv+tnW1e9bp6/cCx/njQ | ||
| 1220 | 6IK9SWO22Pro8lN5vZd3bR+vry3rvWXJj4tVFqiM7fDv9vpTNTcuv2bdHxtvlzVaulg8/xfMhxYf | ||
| 1221 | Py8LGm/8fC3rbs+UI1EBEePHNLRcWxket0bHsNE//fyRSlfTvpYt39tOe21//e9XV5WbqafjUxrP | ||
| 1222 | 3vp7x3nB+IwOovX1rY/z9E6XrbfLY3LsbOlifZ1rtkvLfCjV+Shsr95+S+0HP19dn4vK+nbV2VJM | ||
| 1223 | Y/0AU78ej9fRNZzLdifbvvAiUZDRA+CUnrOv+o89jzmKn5PtAgAAAAAAAAAAAAAAAAAAAAAAAABQ | ||
| 1224 | 9f+dHPt315dAmAAAAABJRU5ErkJggg== | ||
| 1225 | " id="image551" x="-991.57532" y="563.78479" /> | ||
| 1226 | </g> | ||
| 1227 | <g inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/install-05.png" inkscape:export-xdpi="75" inkscape:export-ydpi="75" id="g658" transform="translate(-4.0751145)"> | ||
| 1228 | <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAZ | ||
| 1229 | 3klEQVR4nO3du7ajRrsFUPUZHfjx/lCPqNCP58DBCWTLbC6lqmIhQMw5HMgSqvoobmsDon/dbo8b | ||
| 1230 | AAA5/7d3AQAA30bAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1231 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1232 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1233 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1234 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1235 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1236 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1237 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1238 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1239 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1240 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1241 | wgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAA | ||
| 1242 | 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 | ||
| 1312 | LDrmkVgAAE/OYAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYc2Paah0X3qcAwDAt9skYD08FAsA | ||
| 1313 | uDCXCAEAwgQsAIAwAQsAIEzAAgAIE7AAAMIELACAMAELACDs1+229TOrPHEUADiLTC5yBgsAIEzA | ||
| 1314 | AgAIE7AAAMIELACAMAELACBMwAIACBOwAADCBCwAgDABCwAgTMACAAgTsAAAwgQsAIAwAQsAIEzA | ||
| 1315 | AgAIE7AAAMJ+3W6PvWsAAPgqzmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1316 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1317 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1318 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1319 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1320 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1321 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1322 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1323 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1324 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1325 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1326 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1327 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1328 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1329 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1330 | YAEAhAlYAABhAhYAQJiABQAQJmABAIQJWAAAYQIWAECYgAUAECZgAQCECVgAAGECFgBAmIAFABAm | ||
| 1331 | YAEAhAlYAABhAhYAQNjvvQsAADiv++y7zmABAIQJWAAAYcmA9dff/wu2BkQcfMM8eHkAfUr3YM3u | ||
| 1332 | +P74/edmxXyP4dB92Yg9Z239TP319/8+PDLT9bmmgM/X2WfrOo82Dkv1HK1O4LJmAtZrD/XaT63c | ||
| 1333 | Z11kl/eazdH8fmz2P9PRH7//PNcph+Gw7LIe7r7+X2HrAziaccCqPBgUztC8Phoe1ZqOMcMWRudL | ||
| 1334 | ZvstBJqlOt/W33pMqpnB5zTT8emoc/b91nHu6DfSzuvN6VAfarm01rnUztbLpVDnUvFN20vH8uo4 | ||
| 1335 | gzs7/rN1LtWTWl599QOM/AhY9emqsIOefd16jBmdCnrtCpvODBV20NkzTOUW3o5Va52F+pvGOTU+ | ||
| 1336 | re3MftrR71t9Q7Gmzsj6nxrPYddr+m0dh47luDRus5bqSS2v+HoIXNN/Aat+P1IZJqYfHXNXNbub | ||
| 1337 | rje7o1863bJ0COyoszBZ3zhvvWha248vl9vymYnUvEfW/+z6UG+jFSA4y3FHrg04u38C1ppLGPU2 | ||
| 1338 | yljDZqd/fS5Nf9vyTu3htYzKk4Kt/RY+rRznwjhk66n0seWyXs38zsbr+pPEnZVVaN1eCrbevnZx | ||
| 1339 | 9vqBg/gnYK28hFHZ2efPYC111xqACu0XZqp87ealYzybGnzbznQcVp5t6vaZ5bJeX8vdl+A7+uoQ | ||
| 1340 | XA9Ty3EvZ68fOIL/noNVf69GnwNeH/zj95/Tuf7r7/81jcNsC5n6unSM8+w47Gij5bKvA67/Wzva | ||
| 1341 | etXq7PUD+/rxoNGOvUllttj66PKsvNzLq7a319f6eq+Z8u1khQkKYzt8XV9/qubK6dfM+23j5bJG | ||
| 1342 | TRfd63/H+lDj7fbS0Xjl9tXX3SdTjkQFRIwf01BzbWV43Bodw0YfPV+k0tW0r77pW9upr+2Pf391 | ||
| 1343 | VbiZejo+S+PZWn/rOHeMz+ggWp7f8jhP73TZerncJsfOmi7W17lmudSsD0t13haWV2u/S+0Ht6+m | ||
| 1344 | 7aIwv0111hRTWT/A1K/b7bF3Dcey3cm2C14kCjJ6ABzSffZd/9jzmKP4MVkuAAAAAAAAAAAAAAAA | ||
| 1345 | AAAAAAAAAABF/w+B/c/UXnPWXgAAAABJRU5ErkJggg== | ||
| 1346 | " id="image640" x="-153.84512" y="683.60748" /> | ||
| 1347 | <image width="169.38" height="127.035" preserveAspectRatio="none" xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAJYCAIAAAAVFBUnAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAI | ||
| 1348 | CUlEQVR4nO3c0ZKjKhAAUHcq3+hH8pX7kHtTLGgLaoJmznlJVGxbmap0AeM0AQAAAAAAAAAAAAAA | ||
| 1349 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwTVNK6WCDm/qO+zrefd/xHADgfX6maUqZ | ||
| 1350 | 0flsWEy1SPu1uba/jhk3GG4z829y4s1+5fMB4BYez495np9fUkqv77sdj7CoyC3fPCXtTR+4RO2C | ||
| 1351 | 1dWQ59BLdQXAQI9ie57nonDJD+UtX4cW9681nqpibi3OZ7RXZvV9reW/VggGBWKcXl0rrO2Pk5/a | ||
| 1352 | +qXllHf0bzGUWP8R1vvjgluNBcBIvVNs8QxdcGJvnDhssb9Oe3OKsHEOMWi/mP/BKcvN6/ZGKJK8 | ||
| 1353 | bP/GzXZ0nwILgFF+9p3WNdoUNL7FZFOg9znkxceQe2+8qP4FgCPKKcLCWWMA544lLM46FZObLUE+ | ||
| 1354 | //P/qrEuUnlcs38B4O42CqxT6oB6rczBgK8lTQfjcM3+BYC72zlFeE3t65pHzdA9r2v99SmKKdex | ||
| 1355 | yQBAriywgspjx4LlOMgRR+J8sroqHtrruqNqrOCil+rfRs/HOKpcBoA1/00RBqua8s3FQ4vTQ/lK | ||
| 1356 | o6Lx7t/gljhBm5bf4CLm5psCdufZqPfNBV35XK1/iwjFTQX76yBdzwcAgGVmCQG4jj+jE4D9ekco | ||
| 1357 | AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgPOklN7d4CLukicA | ||
| 1358 | cC8/oxPollJSGAEAN3P9Aap9CQxPGwD4JR7Pj1fxMc9zfjgvStYOLe5viZNSmud5LU6XtTyD4HWe | ||
| 1359 | cT6L9wUAsCyvTvIJuGLIJ99fnBIEPBKnJeE4fhy8PjE4xdQkANCoXIPVOELTNZATNL7agFCc6tWy | ||
| 1360 | BQCu6REfPmvMxtgPAPB7bBRYp4zZPNc25ZvHY7Y4a4EXAECXjQLrC5xVWlnkDgA0KtdgBcNL+xak | ||
| 1361 | t8d/k/S/D18XAPi1HlM1lbb4ffp38GZt9q34D77noSBmr834U/UaiPzc/FAdJ2bsCgBg420OAABv | ||
| 1362 | 8md0Au8VvCgVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1363 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1364 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1365 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1366 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1367 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1368 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1369 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1370 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1371 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1372 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1373 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1374 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1375 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1376 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1377 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1378 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1379 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1380 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1381 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1382 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1383 | AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | ||
| 1384 | AAAAYJC/HlulbQuPF2AAAAAASUVORK5CYII= | ||
| 1385 | " id="image652" x="15.534883" y="683.60748" /> | ||
| 1386 | </g> | ||
| 1387 | </g> | ||
| 1388 | </svg> | ||
diff --git a/static/assets/posts/dfd-rice/layout.png b/static/assets/posts/dfd-rice/layout.png new file mode 100755 index 0000000..a44d2cd --- /dev/null +++ b/static/assets/posts/dfd-rice/layout.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dfd-rice/layout.svg b/static/assets/posts/dfd-rice/layout.svg new file mode 100755 index 0000000..5a9031c --- /dev/null +++ b/static/assets/posts/dfd-rice/layout.svg | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
| 3 | |||
| 4 | <svg width="210mm" height="297mm" viewBox="0 0 210 297" version="1.1" id="svg5" inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)" sodipodi:docname="layout.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg"> | ||
| 5 | <sodipodi:namedview id="namedview7" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageshadow="2" inkscape:pageopacity="0.0" inkscape:pagecheckerboard="0" inkscape:document-units="mm" showgrid="false" inkscape:zoom="0.08" inkscape:cx="1143.75" inkscape:cy="1893.75" inkscape:window-width="2305" inkscape:window-height="752" inkscape:window-x="873" inkscape:window-y="136" inkscape:window-maximized="0" inkscape:current-layer="layer1" /> | ||
| 6 | <defs id="defs2" /> | ||
| 7 | <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1"> | ||
| 8 | <g id="g2012" inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/dfd-rice/layout.png" inkscape:export-xdpi="6.6072011" inkscape:export-ydpi="6.6072011"> | ||
| 9 | <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.447874;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect1454" width="1360.1339" height="1074.3162" x="-360.50458" y="-265.69751" ry="0" /> | ||
| 10 | <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.261189;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect1456" width="1058.4567" height="469.50305" x="1025.9943" y="-265.79086" ry="0" /> | ||
| 11 | <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="1407.4224" y="-12.228849" id="text7667-3"> | ||
| 12 | <tspan sodipodi:role="line" id="tspan7665-6" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="1407.4224" y="-12.228849">TERMINAL</tspan> | ||
| 13 | </text> | ||
| 14 | <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.289748;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect1458" width="1058.4564" height="577.78894" x="1028.7416" y="230.8085" ry="0" /> | ||
| 15 | <rect style="fill:#e6e6e6;stroke:#303030;stroke-width:0.447874;stroke-linecap:round;stroke-linejoin:miter;paint-order:stroke fill markers" id="rect135" width="1360.1339" height="1074.3162" x="-1747.0968" y="-265.69751" ry="0" /> | ||
| 16 | <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="-1214.8931" y="290.24585" id="text3280"> | ||
| 17 | <tspan sodipodi:role="line" id="tspan3278" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="-1214.8931" y="290.24585">BROWSER</tspan> | ||
| 18 | </text> | ||
| 19 | <rect style="fill:none;stroke:none;stroke-width:10;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers" id="rect31" width="3834.2903" height="1074.2903" x="-1747.0922" y="-265.69287" ry="0" /> | ||
| 20 | <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="121.84438" y="290.24585" id="text7667"> | ||
| 21 | <tspan sodipodi:role="line" id="tspan7665" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="121.84438" y="290.24585">CODE EDITOR</tspan> | ||
| 22 | </text> | ||
| 23 | <text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:51.606px;line-height:1.25;font-family:sans-serif;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:1.29015" x="1410.1696" y="538.51349" id="text12264"> | ||
| 24 | <tspan sodipodi:role="line" id="tspan12262" style="font-weight:bold;stroke-width:1.29015;fill:#4d4d4d" x="1410.1696" y="538.51349">TERMINAL</tspan> | ||
| 25 | </text> | ||
| 26 | </g> | ||
| 27 | </g> | ||
| 28 | </svg> | ||
diff --git a/static/assets/posts/dfd-rice/script.png b/static/assets/posts/dfd-rice/script.png new file mode 100755 index 0000000..09be37a --- /dev/null +++ b/static/assets/posts/dfd-rice/script.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-sequence/benchmarks.csv b/static/assets/posts/dna-sequence/benchmarks.csv new file mode 100644 index 0000000..8645d5e --- /dev/null +++ b/static/assets/posts/dna-sequence/benchmarks.csv | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | Packages,Encode to FASTA (ms),FASTA file size (KB),FASTA gzipped (KB) | ||
| 2 | 1KB,5.625224,4.1,1.4 | ||
| 3 | 10KB,32.679975,40.7,13 | ||
| 4 | 100KB,112.864416,406.7,121 | ||
| 5 | 1MB,872.887675,4100,1200 | ||
| 6 | 10MB,8472.693202,40700,12000 | ||
| 7 | 100MB,85525.178217,406700,118000 | ||
diff --git a/static/assets/posts/dna-sequence/chart-size.py b/static/assets/posts/dna-sequence/chart-size.py new file mode 100644 index 0000000..4fc408d --- /dev/null +++ b/static/assets/posts/dna-sequence/chart-size.py | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | import csv | ||
| 2 | |||
| 3 | import matplotlib.pyplot as plt | ||
| 4 | import pandas as pd | ||
| 5 | |||
| 6 | # Read the data | ||
| 7 | df = pd.read_csv("benchmarks.csv") | ||
| 8 | |||
| 9 | # Settings | ||
| 10 | plt.title("Encode to FASTA out filesize") | ||
| 11 | plt.tight_layout(pad=2) | ||
| 12 | fig = plt.gcf() | ||
| 13 | fig.set_size_inches(10, 4) | ||
| 14 | |||
| 15 | # Plotting | ||
| 16 | plt.plot(df["Packages"], df["FASTA file size (KB)"], label = "Raw", color="black", linestyle="-") | ||
| 17 | plt.plot(df["Packages"], df["FASTA gzipped (KB)"], label = "Gzipped", color="black", linestyle="--") | ||
| 18 | |||
| 19 | # Adding x and y axis labels | ||
| 20 | plt.xlabel("Size of an input file", fontstyle="italic") | ||
| 21 | plt.ylabel("File size (KB)", fontstyle="italic") | ||
| 22 | |||
| 23 | # Legend | ||
| 24 | legend = plt.legend() | ||
| 25 | legend.get_frame().set_linewidth(0) | ||
| 26 | |||
| 27 | # Export as SVG | ||
| 28 | plt.savefig("chart-size.svg", format="svg") | ||
diff --git a/static/assets/posts/dna-sequence/chart-size.svg b/static/assets/posts/dna-sequence/chart-size.svg new file mode 100644 index 0000000..1a2d127 --- /dev/null +++ b/static/assets/posts/dna-sequence/chart-size.svg | |||
| @@ -0,0 +1,1553 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||
| 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||
| 3 | "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
| 4 | <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="720pt" height="288pt" viewBox="0 0 720 288" xmlns="http://www.w3.org/2000/svg" version="1.1"> | ||
| 5 | <metadata> | ||
| 6 | <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | ||
| 7 | <cc:Work> | ||
| 8 | <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> | ||
| 9 | <dc:date>2023-08-05T13:29:17.701350</dc:date> | ||
| 10 | <dc:format>image/svg+xml</dc:format> | ||
| 11 | <dc:creator> | ||
| 12 | <cc:Agent> | ||
| 13 | <dc:title>Matplotlib v3.5.2, https://matplotlib.org/</dc:title> | ||
| 14 | </cc:Agent> | ||
| 15 | </dc:creator> | ||
| 16 | </cc:Work> | ||
| 17 | </rdf:RDF> | ||
| 18 | </metadata> | ||
| 19 | <defs> | ||
| 20 | <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> | ||
| 21 | </defs> | ||
| 22 | <g id="figure_1"> | ||
| 23 | <g id="patch_1"> | ||
| 24 | <path d="M 0 288 | ||
| 25 | L 720 288 | ||
| 26 | L 720 0 | ||
| 27 | L 0 0 | ||
| 28 | z | ||
| 29 | " style="fill: #ffffff"/> | ||
| 30 | </g> | ||
| 31 | <g id="axes_1"> | ||
| 32 | <g id="patch_2"> | ||
| 33 | <path d="M 67.078125 257.1 | ||
| 34 | L 676.304688 257.1 | ||
| 35 | L 676.304688 28.866667 | ||
| 36 | L 67.078125 28.866667 | ||
| 37 | z | ||
| 38 | " style="fill: #ffffff"/> | ||
| 39 | </g> | ||
| 40 | <g id="matplotlib.axis_1"> | ||
| 41 | <g id="xtick_1"> | ||
| 42 | <g id="line2d_1"> | ||
| 43 | <defs> | ||
| 44 | <path id="m07b8a304ba" d="M 0 0 | ||
| 45 | L 0 3.5 | ||
| 46 | " style="stroke: #000000; stroke-width: 0.8"/> | ||
| 47 | </defs> | ||
| 48 | <g> | ||
| 49 | <use xlink:href="#m07b8a304ba" x="94.770241" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 50 | </g> | ||
| 51 | </g> | ||
| 52 | <g id="text_1"> | ||
| 53 | <!-- 1KB --> | ||
| 54 | <g transform="translate(84.879616 271.698438)scale(0.1 -0.1)"> | ||
| 55 | <defs> | ||
| 56 | <path id="DejaVuSans-31" d="M 794 531 | ||
| 57 | L 1825 531 | ||
| 58 | L 1825 4091 | ||
| 59 | L 703 3866 | ||
| 60 | L 703 4441 | ||
| 61 | L 1819 4666 | ||
| 62 | L 2450 4666 | ||
| 63 | L 2450 531 | ||
| 64 | L 3481 531 | ||
| 65 | L 3481 0 | ||
| 66 | L 794 0 | ||
| 67 | L 794 531 | ||
| 68 | z | ||
| 69 | " transform="scale(0.015625)"/> | ||
| 70 | <path id="DejaVuSans-4b" d="M 628 4666 | ||
| 71 | L 1259 4666 | ||
| 72 | L 1259 2694 | ||
| 73 | L 3353 4666 | ||
| 74 | L 4166 4666 | ||
| 75 | L 1850 2491 | ||
| 76 | L 4331 0 | ||
| 77 | L 3500 0 | ||
| 78 | L 1259 2247 | ||
| 79 | L 1259 0 | ||
| 80 | L 628 0 | ||
| 81 | L 628 4666 | ||
| 82 | z | ||
| 83 | " transform="scale(0.015625)"/> | ||
| 84 | <path id="DejaVuSans-42" d="M 1259 2228 | ||
| 85 | L 1259 519 | ||
| 86 | L 2272 519 | ||
| 87 | Q 2781 519 3026 730 | ||
| 88 | Q 3272 941 3272 1375 | ||
| 89 | Q 3272 1813 3026 2020 | ||
| 90 | Q 2781 2228 2272 2228 | ||
| 91 | L 1259 2228 | ||
| 92 | z | ||
| 93 | M 1259 4147 | ||
| 94 | L 1259 2741 | ||
| 95 | L 2194 2741 | ||
| 96 | Q 2656 2741 2882 2914 | ||
| 97 | Q 3109 3088 3109 3444 | ||
| 98 | Q 3109 3797 2882 3972 | ||
| 99 | Q 2656 4147 2194 4147 | ||
| 100 | L 1259 4147 | ||
| 101 | z | ||
| 102 | M 628 4666 | ||
| 103 | L 2241 4666 | ||
| 104 | Q 2963 4666 3353 4366 | ||
| 105 | Q 3744 4066 3744 3513 | ||
| 106 | Q 3744 3084 3544 2831 | ||
| 107 | Q 3344 2578 2956 2516 | ||
| 108 | Q 3422 2416 3680 2098 | ||
| 109 | Q 3938 1781 3938 1306 | ||
| 110 | Q 3938 681 3513 340 | ||
| 111 | Q 3088 0 2303 0 | ||
| 112 | L 628 0 | ||
| 113 | L 628 4666 | ||
| 114 | z | ||
| 115 | " transform="scale(0.015625)"/> | ||
| 116 | </defs> | ||
| 117 | <use xlink:href="#DejaVuSans-31"/> | ||
| 118 | <use xlink:href="#DejaVuSans-4b" x="63.623047"/> | ||
| 119 | <use xlink:href="#DejaVuSans-42" x="129.199219"/> | ||
| 120 | </g> | ||
| 121 | </g> | ||
| 122 | </g> | ||
| 123 | <g id="xtick_2"> | ||
| 124 | <g id="line2d_2"> | ||
| 125 | <g> | ||
| 126 | <use xlink:href="#m07b8a304ba" x="205.538707" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 127 | </g> | ||
| 128 | </g> | ||
| 129 | <g id="text_2"> | ||
| 130 | <!-- 10KB --> | ||
| 131 | <g transform="translate(192.466832 271.698438)scale(0.1 -0.1)"> | ||
| 132 | <defs> | ||
| 133 | <path id="DejaVuSans-30" d="M 2034 4250 | ||
| 134 | Q 1547 4250 1301 3770 | ||
| 135 | Q 1056 3291 1056 2328 | ||
| 136 | Q 1056 1369 1301 889 | ||
| 137 | Q 1547 409 2034 409 | ||
| 138 | Q 2525 409 2770 889 | ||
| 139 | Q 3016 1369 3016 2328 | ||
| 140 | Q 3016 3291 2770 3770 | ||
| 141 | Q 2525 4250 2034 4250 | ||
| 142 | z | ||
| 143 | M 2034 4750 | ||
| 144 | Q 2819 4750 3233 4129 | ||
| 145 | Q 3647 3509 3647 2328 | ||
| 146 | Q 3647 1150 3233 529 | ||
| 147 | Q 2819 -91 2034 -91 | ||
| 148 | Q 1250 -91 836 529 | ||
| 149 | Q 422 1150 422 2328 | ||
| 150 | Q 422 3509 836 4129 | ||
| 151 | Q 1250 4750 2034 4750 | ||
| 152 | z | ||
| 153 | " transform="scale(0.015625)"/> | ||
| 154 | </defs> | ||
| 155 | <use xlink:href="#DejaVuSans-31"/> | ||
| 156 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 157 | <use xlink:href="#DejaVuSans-4b" x="127.246094"/> | ||
| 158 | <use xlink:href="#DejaVuSans-42" x="192.822266"/> | ||
| 159 | </g> | ||
| 160 | </g> | ||
| 161 | </g> | ||
| 162 | <g id="xtick_3"> | ||
| 163 | <g id="line2d_3"> | ||
| 164 | <g> | ||
| 165 | <use xlink:href="#m07b8a304ba" x="316.307173" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 166 | </g> | ||
| 167 | </g> | ||
| 168 | <g id="text_3"> | ||
| 169 | <!-- 100KB --> | ||
| 170 | <g transform="translate(300.054048 271.698438)scale(0.1 -0.1)"> | ||
| 171 | <use xlink:href="#DejaVuSans-31"/> | ||
| 172 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 173 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 174 | <use xlink:href="#DejaVuSans-4b" x="190.869141"/> | ||
| 175 | <use xlink:href="#DejaVuSans-42" x="256.445312"/> | ||
| 176 | </g> | ||
| 177 | </g> | ||
| 178 | </g> | ||
| 179 | <g id="xtick_4"> | ||
| 180 | <g id="line2d_4"> | ||
| 181 | <g> | ||
| 182 | <use xlink:href="#m07b8a304ba" x="427.075639" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 183 | </g> | ||
| 184 | </g> | ||
| 185 | <g id="text_4"> | ||
| 186 | <!-- 1MB --> | ||
| 187 | <g transform="translate(416.149858 271.698438)scale(0.1 -0.1)"> | ||
| 188 | <defs> | ||
| 189 | <path id="DejaVuSans-4d" d="M 628 4666 | ||
| 190 | L 1569 4666 | ||
| 191 | L 2759 1491 | ||
| 192 | L 3956 4666 | ||
| 193 | L 4897 4666 | ||
| 194 | L 4897 0 | ||
| 195 | L 4281 0 | ||
| 196 | L 4281 4097 | ||
| 197 | L 3078 897 | ||
| 198 | L 2444 897 | ||
| 199 | L 1241 4097 | ||
| 200 | L 1241 0 | ||
| 201 | L 628 0 | ||
| 202 | L 628 4666 | ||
| 203 | z | ||
| 204 | " transform="scale(0.015625)"/> | ||
| 205 | </defs> | ||
| 206 | <use xlink:href="#DejaVuSans-31"/> | ||
| 207 | <use xlink:href="#DejaVuSans-4d" x="63.623047"/> | ||
| 208 | <use xlink:href="#DejaVuSans-42" x="149.902344"/> | ||
| 209 | </g> | ||
| 210 | </g> | ||
| 211 | </g> | ||
| 212 | <g id="xtick_5"> | ||
| 213 | <g id="line2d_5"> | ||
| 214 | <g> | ||
| 215 | <use xlink:href="#m07b8a304ba" x="537.844105" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 216 | </g> | ||
| 217 | </g> | ||
| 218 | <g id="text_5"> | ||
| 219 | <!-- 10MB --> | ||
| 220 | <g transform="translate(523.737074 271.698438)scale(0.1 -0.1)"> | ||
| 221 | <use xlink:href="#DejaVuSans-31"/> | ||
| 222 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 223 | <use xlink:href="#DejaVuSans-4d" x="127.246094"/> | ||
| 224 | <use xlink:href="#DejaVuSans-42" x="213.525391"/> | ||
| 225 | </g> | ||
| 226 | </g> | ||
| 227 | </g> | ||
| 228 | <g id="xtick_6"> | ||
| 229 | <g id="line2d_6"> | ||
| 230 | <g> | ||
| 231 | <use xlink:href="#m07b8a304ba" x="648.612571" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 232 | </g> | ||
| 233 | </g> | ||
| 234 | <g id="text_6"> | ||
| 235 | <!-- 100MB --> | ||
| 236 | <g transform="translate(631.32429 271.698438)scale(0.1 -0.1)"> | ||
| 237 | <use xlink:href="#DejaVuSans-31"/> | ||
| 238 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 239 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 240 | <use xlink:href="#DejaVuSans-4d" x="190.869141"/> | ||
| 241 | <use xlink:href="#DejaVuSans-42" x="277.148438"/> | ||
| 242 | </g> | ||
| 243 | </g> | ||
| 244 | </g> | ||
| 245 | <g id="text_7"> | ||
| 246 | <!-- Size of an input file --> | ||
| 247 | <g transform="translate(323.542969 285.376562)scale(0.1 -0.1)"> | ||
| 248 | <defs> | ||
| 249 | <path id="DejaVuSans-Oblique-53" d="M 3859 4513 | ||
| 250 | L 3738 3897 | ||
| 251 | Q 3422 4066 3111 4152 | ||
| 252 | Q 2800 4238 2509 4238 | ||
| 253 | Q 1944 4238 1609 3991 | ||
| 254 | Q 1275 3744 1275 3334 | ||
| 255 | Q 1275 3109 1398 2989 | ||
| 256 | Q 1522 2869 2034 2731 | ||
| 257 | L 2413 2638 | ||
| 258 | Q 3053 2472 3303 2217 | ||
| 259 | Q 3553 1963 3553 1503 | ||
| 260 | Q 3553 797 2998 353 | ||
| 261 | Q 2444 -91 1538 -91 | ||
| 262 | Q 1166 -91 791 -17 | ||
| 263 | Q 416 56 38 206 | ||
| 264 | L 166 856 | ||
| 265 | Q 513 641 861 531 | ||
| 266 | Q 1209 422 1556 422 | ||
| 267 | Q 2147 422 2503 684 | ||
| 268 | Q 2859 947 2859 1369 | ||
| 269 | Q 2859 1650 2717 1795 | ||
| 270 | Q 2575 1941 2106 2059 | ||
| 271 | L 1728 2156 | ||
| 272 | Q 1081 2325 845 2545 | ||
| 273 | Q 609 2766 609 3163 | ||
| 274 | Q 609 3859 1145 4304 | ||
| 275 | Q 1681 4750 2541 4750 | ||
| 276 | Q 2875 4750 3203 4690 | ||
| 277 | Q 3531 4631 3859 4513 | ||
| 278 | z | ||
| 279 | " transform="scale(0.015625)"/> | ||
| 280 | <path id="DejaVuSans-Oblique-69" d="M 1172 4863 | ||
| 281 | L 1747 4863 | ||
| 282 | L 1606 4134 | ||
| 283 | L 1031 4134 | ||
| 284 | L 1172 4863 | ||
| 285 | z | ||
| 286 | M 909 3500 | ||
| 287 | L 1484 3500 | ||
| 288 | L 800 0 | ||
| 289 | L 225 0 | ||
| 290 | L 909 3500 | ||
| 291 | z | ||
| 292 | " transform="scale(0.015625)"/> | ||
| 293 | <path id="DejaVuSans-Oblique-7a" d="M 744 3500 | ||
| 294 | L 3475 3500 | ||
| 295 | L 3372 2975 | ||
| 296 | L 738 459 | ||
| 297 | L 2913 459 | ||
| 298 | L 2822 0 | ||
| 299 | L -19 0 | ||
| 300 | L 84 525 | ||
| 301 | L 2719 3041 | ||
| 302 | L 653 3041 | ||
| 303 | L 744 3500 | ||
| 304 | z | ||
| 305 | " transform="scale(0.015625)"/> | ||
| 306 | <path id="DejaVuSans-Oblique-65" d="M 3078 2063 | ||
| 307 | Q 3088 2113 3092 2166 | ||
| 308 | Q 3097 2219 3097 2272 | ||
| 309 | Q 3097 2653 2873 2875 | ||
| 310 | Q 2650 3097 2266 3097 | ||
| 311 | Q 1838 3097 1509 2826 | ||
| 312 | Q 1181 2556 1013 2059 | ||
| 313 | L 3078 2063 | ||
| 314 | z | ||
| 315 | M 3578 1613 | ||
| 316 | L 903 1613 | ||
| 317 | Q 884 1494 878 1425 | ||
| 318 | Q 872 1356 872 1306 | ||
| 319 | Q 872 872 1139 634 | ||
| 320 | Q 1406 397 1894 397 | ||
| 321 | Q 2269 397 2603 481 | ||
| 322 | Q 2938 566 3225 728 | ||
| 323 | L 3116 159 | ||
| 324 | Q 2806 34 2476 -28 | ||
| 325 | Q 2147 -91 1806 -91 | ||
| 326 | Q 1078 -91 686 257 | ||
| 327 | Q 294 606 294 1247 | ||
| 328 | Q 294 1794 489 2264 | ||
| 329 | Q 684 2734 1063 3103 | ||
| 330 | Q 1306 3334 1642 3459 | ||
| 331 | Q 1978 3584 2356 3584 | ||
| 332 | Q 2950 3584 3301 3228 | ||
| 333 | Q 3653 2872 3653 2272 | ||
| 334 | Q 3653 2128 3634 1964 | ||
| 335 | Q 3616 1800 3578 1613 | ||
| 336 | z | ||
| 337 | " transform="scale(0.015625)"/> | ||
| 338 | <path id="DejaVuSans-Oblique-20" transform="scale(0.015625)"/> | ||
| 339 | <path id="DejaVuSans-Oblique-6f" d="M 1625 -91 | ||
| 340 | Q 1009 -91 651 289 | ||
| 341 | Q 294 669 294 1325 | ||
| 342 | Q 294 1706 417 2101 | ||
| 343 | Q 541 2497 738 2766 | ||
| 344 | Q 1047 3184 1428 3384 | ||
| 345 | Q 1809 3584 2291 3584 | ||
| 346 | Q 2888 3584 3255 3212 | ||
| 347 | Q 3622 2841 3622 2241 | ||
| 348 | Q 3622 1825 3500 1412 | ||
| 349 | Q 3378 1000 3181 728 | ||
| 350 | Q 2875 309 2494 109 | ||
| 351 | Q 2113 -91 1625 -91 | ||
| 352 | z | ||
| 353 | M 891 1344 | ||
| 354 | Q 891 869 1089 633 | ||
| 355 | Q 1288 397 1691 397 | ||
| 356 | Q 2269 397 2648 901 | ||
| 357 | Q 3028 1406 3028 2181 | ||
| 358 | Q 3028 2634 2825 2865 | ||
| 359 | Q 2622 3097 2228 3097 | ||
| 360 | Q 1903 3097 1650 2945 | ||
| 361 | Q 1397 2794 1197 2484 | ||
| 362 | Q 1050 2253 970 1956 | ||
| 363 | Q 891 1659 891 1344 | ||
| 364 | z | ||
| 365 | " transform="scale(0.015625)"/> | ||
| 366 | <path id="DejaVuSans-Oblique-66" d="M 3059 4863 | ||
| 367 | L 2969 4384 | ||
| 368 | L 2419 4384 | ||
| 369 | Q 2106 4384 1964 4261 | ||
| 370 | Q 1822 4138 1753 3809 | ||
| 371 | L 1691 3500 | ||
| 372 | L 2638 3500 | ||
| 373 | L 2553 3053 | ||
| 374 | L 1606 3053 | ||
| 375 | L 1013 0 | ||
| 376 | L 434 0 | ||
| 377 | L 1031 3053 | ||
| 378 | L 481 3053 | ||
| 379 | L 563 3500 | ||
| 380 | L 1113 3500 | ||
| 381 | L 1159 3744 | ||
| 382 | Q 1278 4363 1576 4613 | ||
| 383 | Q 1875 4863 2516 4863 | ||
| 384 | L 3059 4863 | ||
| 385 | z | ||
| 386 | " transform="scale(0.015625)"/> | ||
| 387 | <path id="DejaVuSans-Oblique-61" d="M 3438 1997 | ||
| 388 | L 3047 0 | ||
| 389 | L 2472 0 | ||
| 390 | L 2578 531 | ||
| 391 | Q 2325 219 2001 64 | ||
| 392 | Q 1678 -91 1281 -91 | ||
| 393 | Q 834 -91 548 182 | ||
| 394 | Q 263 456 263 884 | ||
| 395 | Q 263 1497 752 1853 | ||
| 396 | Q 1241 2209 2100 2209 | ||
| 397 | L 2900 2209 | ||
| 398 | L 2931 2363 | ||
| 399 | Q 2938 2388 2941 2417 | ||
| 400 | Q 2944 2447 2944 2509 | ||
| 401 | Q 2944 2788 2717 2942 | ||
| 402 | Q 2491 3097 2081 3097 | ||
| 403 | Q 1800 3097 1504 3025 | ||
| 404 | Q 1209 2953 897 2809 | ||
| 405 | L 997 3341 | ||
| 406 | Q 1322 3463 1633 3523 | ||
| 407 | Q 1944 3584 2234 3584 | ||
| 408 | Q 2853 3584 3176 3315 | ||
| 409 | Q 3500 3047 3500 2534 | ||
| 410 | Q 3500 2431 3484 2292 | ||
| 411 | Q 3469 2153 3438 1997 | ||
| 412 | z | ||
| 413 | M 2816 1759 | ||
| 414 | L 2241 1759 | ||
| 415 | Q 1534 1759 1195 1570 | ||
| 416 | Q 856 1381 856 984 | ||
| 417 | Q 856 709 1029 553 | ||
| 418 | Q 1203 397 1509 397 | ||
| 419 | Q 1978 397 2328 733 | ||
| 420 | Q 2678 1069 2791 1631 | ||
| 421 | L 2816 1759 | ||
| 422 | z | ||
| 423 | " transform="scale(0.015625)"/> | ||
| 424 | <path id="DejaVuSans-Oblique-6e" d="M 3566 2113 | ||
| 425 | L 3156 0 | ||
| 426 | L 2578 0 | ||
| 427 | L 2988 2091 | ||
| 428 | Q 3016 2238 3031 2350 | ||
| 429 | Q 3047 2463 3047 2528 | ||
| 430 | Q 3047 2791 2881 2937 | ||
| 431 | Q 2716 3084 2419 3084 | ||
| 432 | Q 1956 3084 1622 2776 | ||
| 433 | Q 1288 2469 1184 1941 | ||
| 434 | L 800 0 | ||
| 435 | L 225 0 | ||
| 436 | L 903 3500 | ||
| 437 | L 1478 3500 | ||
| 438 | L 1363 2950 | ||
| 439 | Q 1603 3253 1940 3418 | ||
| 440 | Q 2278 3584 2650 3584 | ||
| 441 | Q 3113 3584 3367 3334 | ||
| 442 | Q 3622 3084 3622 2631 | ||
| 443 | Q 3622 2519 3608 2391 | ||
| 444 | Q 3594 2263 3566 2113 | ||
| 445 | z | ||
| 446 | " transform="scale(0.015625)"/> | ||
| 447 | <path id="DejaVuSans-Oblique-70" d="M 3175 2156 | ||
| 448 | Q 3175 2616 2975 2859 | ||
| 449 | Q 2775 3103 2400 3103 | ||
| 450 | Q 2144 3103 1911 2972 | ||
| 451 | Q 1678 2841 1497 2591 | ||
| 452 | Q 1319 2344 1212 1994 | ||
| 453 | Q 1106 1644 1106 1300 | ||
| 454 | Q 1106 863 1306 627 | ||
| 455 | Q 1506 391 1875 391 | ||
| 456 | Q 2147 391 2380 519 | ||
| 457 | Q 2613 647 2778 891 | ||
| 458 | Q 2956 1147 3065 1494 | ||
| 459 | Q 3175 1841 3175 2156 | ||
| 460 | z | ||
| 461 | M 1394 2969 | ||
| 462 | Q 1625 3272 1939 3428 | ||
| 463 | Q 2253 3584 2638 3584 | ||
| 464 | Q 3175 3584 3472 3232 | ||
| 465 | Q 3769 2881 3769 2247 | ||
| 466 | Q 3769 1728 3584 1258 | ||
| 467 | Q 3400 788 3053 416 | ||
| 468 | Q 2822 169 2531 39 | ||
| 469 | Q 2241 -91 1919 -91 | ||
| 470 | Q 1547 -91 1294 64 | ||
| 471 | Q 1041 219 916 525 | ||
| 472 | L 556 -1331 | ||
| 473 | L -19 -1331 | ||
| 474 | L 922 3500 | ||
| 475 | L 1497 3500 | ||
| 476 | L 1394 2969 | ||
| 477 | z | ||
| 478 | " transform="scale(0.015625)"/> | ||
| 479 | <path id="DejaVuSans-Oblique-75" d="M 428 1388 | ||
| 480 | L 838 3500 | ||
| 481 | L 1416 3500 | ||
| 482 | L 1006 1409 | ||
| 483 | Q 975 1256 961 1147 | ||
| 484 | Q 947 1038 947 966 | ||
| 485 | Q 947 700 1109 554 | ||
| 486 | Q 1272 409 1569 409 | ||
| 487 | Q 2031 409 2368 721 | ||
| 488 | Q 2706 1034 2809 1563 | ||
| 489 | L 3194 3500 | ||
| 490 | L 3769 3500 | ||
| 491 | L 3091 0 | ||
| 492 | L 2516 0 | ||
| 493 | L 2631 550 | ||
| 494 | Q 2388 244 2052 76 | ||
| 495 | Q 1716 -91 1338 -91 | ||
| 496 | Q 878 -91 622 161 | ||
| 497 | Q 366 413 366 863 | ||
| 498 | Q 366 956 381 1097 | ||
| 499 | Q 397 1238 428 1388 | ||
| 500 | z | ||
| 501 | " transform="scale(0.015625)"/> | ||
| 502 | <path id="DejaVuSans-Oblique-74" d="M 2706 3500 | ||
| 503 | L 2619 3053 | ||
| 504 | L 1472 3053 | ||
| 505 | L 1100 1153 | ||
| 506 | Q 1081 1047 1072 975 | ||
| 507 | Q 1063 903 1063 863 | ||
| 508 | Q 1063 663 1183 572 | ||
| 509 | Q 1303 481 1569 481 | ||
| 510 | L 2150 481 | ||
| 511 | L 2053 0 | ||
| 512 | L 1503 0 | ||
| 513 | Q 991 0 739 200 | ||
| 514 | Q 488 400 488 806 | ||
| 515 | Q 488 878 497 964 | ||
| 516 | Q 506 1050 525 1153 | ||
| 517 | L 897 3053 | ||
| 518 | L 409 3053 | ||
| 519 | L 500 3500 | ||
| 520 | L 978 3500 | ||
| 521 | L 1172 4494 | ||
| 522 | L 1747 4494 | ||
| 523 | L 1556 3500 | ||
| 524 | L 2706 3500 | ||
| 525 | z | ||
| 526 | " transform="scale(0.015625)"/> | ||
| 527 | <path id="DejaVuSans-Oblique-6c" d="M 1172 4863 | ||
| 528 | L 1747 4863 | ||
| 529 | L 800 0 | ||
| 530 | L 225 0 | ||
| 531 | L 1172 4863 | ||
| 532 | z | ||
| 533 | " transform="scale(0.015625)"/> | ||
| 534 | </defs> | ||
| 535 | <use xlink:href="#DejaVuSans-Oblique-53"/> | ||
| 536 | <use xlink:href="#DejaVuSans-Oblique-69" x="63.476562"/> | ||
| 537 | <use xlink:href="#DejaVuSans-Oblique-7a" x="91.259766"/> | ||
| 538 | <use xlink:href="#DejaVuSans-Oblique-65" x="143.75"/> | ||
| 539 | <use xlink:href="#DejaVuSans-Oblique-20" x="205.273438"/> | ||
| 540 | <use xlink:href="#DejaVuSans-Oblique-6f" x="237.060547"/> | ||
| 541 | <use xlink:href="#DejaVuSans-Oblique-66" x="298.242188"/> | ||
| 542 | <use xlink:href="#DejaVuSans-Oblique-20" x="333.447266"/> | ||
| 543 | <use xlink:href="#DejaVuSans-Oblique-61" x="365.234375"/> | ||
| 544 | <use xlink:href="#DejaVuSans-Oblique-6e" x="426.513672"/> | ||
| 545 | <use xlink:href="#DejaVuSans-Oblique-20" x="489.892578"/> | ||
| 546 | <use xlink:href="#DejaVuSans-Oblique-69" x="521.679688"/> | ||
| 547 | <use xlink:href="#DejaVuSans-Oblique-6e" x="549.462891"/> | ||
| 548 | <use xlink:href="#DejaVuSans-Oblique-70" x="612.841797"/> | ||
| 549 | <use xlink:href="#DejaVuSans-Oblique-75" x="676.318359"/> | ||
| 550 | <use xlink:href="#DejaVuSans-Oblique-74" x="739.697266"/> | ||
| 551 | <use xlink:href="#DejaVuSans-Oblique-20" x="778.90625"/> | ||
| 552 | <use xlink:href="#DejaVuSans-Oblique-66" x="810.693359"/> | ||
| 553 | <use xlink:href="#DejaVuSans-Oblique-69" x="845.898438"/> | ||
| 554 | <use xlink:href="#DejaVuSans-Oblique-6c" x="873.681641"/> | ||
| 555 | <use xlink:href="#DejaVuSans-Oblique-65" x="901.464844"/> | ||
| 556 | </g> | ||
| 557 | </g> | ||
| 558 | </g> | ||
| 559 | <g id="matplotlib.axis_2"> | ||
| 560 | <g id="ytick_1"> | ||
| 561 | <g id="line2d_7"> | ||
| 562 | <defs> | ||
| 563 | <path id="ma77a0d662c" d="M 0 0 | ||
| 564 | L -3.5 0 | ||
| 565 | " style="stroke: #000000; stroke-width: 0.8"/> | ||
| 566 | </defs> | ||
| 567 | <g> | ||
| 568 | <use xlink:href="#ma77a0d662c" x="67.078125" y="246.726472" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 569 | </g> | ||
| 570 | </g> | ||
| 571 | <g id="text_8"> | ||
| 572 | <!-- 0 --> | ||
| 573 | <g transform="translate(53.715625 250.525691)scale(0.1 -0.1)"> | ||
| 574 | <use xlink:href="#DejaVuSans-30"/> | ||
| 575 | </g> | ||
| 576 | </g> | ||
| 577 | </g> | ||
| 578 | <g id="ytick_2"> | ||
| 579 | <g id="line2d_8"> | ||
| 580 | <g> | ||
| 581 | <use xlink:href="#ma77a0d662c" x="67.078125" y="221.218043" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 582 | </g> | ||
| 583 | </g> | ||
| 584 | <g id="text_9"> | ||
| 585 | <!-- 50000 --> | ||
| 586 | <g transform="translate(28.265625 225.017261)scale(0.1 -0.1)"> | ||
| 587 | <defs> | ||
| 588 | <path id="DejaVuSans-35" d="M 691 4666 | ||
| 589 | L 3169 4666 | ||
| 590 | L 3169 4134 | ||
| 591 | L 1269 4134 | ||
| 592 | L 1269 2991 | ||
| 593 | Q 1406 3038 1543 3061 | ||
| 594 | Q 1681 3084 1819 3084 | ||
| 595 | Q 2600 3084 3056 2656 | ||
| 596 | Q 3513 2228 3513 1497 | ||
| 597 | Q 3513 744 3044 326 | ||
| 598 | Q 2575 -91 1722 -91 | ||
| 599 | Q 1428 -91 1123 -41 | ||
| 600 | Q 819 9 494 109 | ||
| 601 | L 494 744 | ||
| 602 | Q 775 591 1075 516 | ||
| 603 | Q 1375 441 1709 441 | ||
| 604 | Q 2250 441 2565 725 | ||
| 605 | Q 2881 1009 2881 1497 | ||
| 606 | Q 2881 1984 2565 2268 | ||
| 607 | Q 2250 2553 1709 2553 | ||
| 608 | Q 1456 2553 1204 2497 | ||
| 609 | Q 953 2441 691 2322 | ||
| 610 | L 691 4666 | ||
| 611 | z | ||
| 612 | " transform="scale(0.015625)"/> | ||
| 613 | </defs> | ||
| 614 | <use xlink:href="#DejaVuSans-35"/> | ||
| 615 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 616 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 617 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 618 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 619 | </g> | ||
| 620 | </g> | ||
| 621 | </g> | ||
| 622 | <g id="ytick_3"> | ||
| 623 | <g id="line2d_9"> | ||
| 624 | <g> | ||
| 625 | <use xlink:href="#ma77a0d662c" x="67.078125" y="195.709614" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 626 | </g> | ||
| 627 | </g> | ||
| 628 | <g id="text_10"> | ||
| 629 | <!-- 100000 --> | ||
| 630 | <g transform="translate(21.903125 199.508832)scale(0.1 -0.1)"> | ||
| 631 | <use xlink:href="#DejaVuSans-31"/> | ||
| 632 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 633 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 634 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 635 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 636 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 637 | </g> | ||
| 638 | </g> | ||
| 639 | </g> | ||
| 640 | <g id="ytick_4"> | ||
| 641 | <g id="line2d_10"> | ||
| 642 | <g> | ||
| 643 | <use xlink:href="#ma77a0d662c" x="67.078125" y="170.201184" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 644 | </g> | ||
| 645 | </g> | ||
| 646 | <g id="text_11"> | ||
| 647 | <!-- 150000 --> | ||
| 648 | <g transform="translate(21.903125 174.000403)scale(0.1 -0.1)"> | ||
| 649 | <use xlink:href="#DejaVuSans-31"/> | ||
| 650 | <use xlink:href="#DejaVuSans-35" x="63.623047"/> | ||
| 651 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 652 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 653 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 654 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 655 | </g> | ||
| 656 | </g> | ||
| 657 | </g> | ||
| 658 | <g id="ytick_5"> | ||
| 659 | <g id="line2d_11"> | ||
| 660 | <g> | ||
| 661 | <use xlink:href="#ma77a0d662c" x="67.078125" y="144.692755" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 662 | </g> | ||
| 663 | </g> | ||
| 664 | <g id="text_12"> | ||
| 665 | <!-- 200000 --> | ||
| 666 | <g transform="translate(21.903125 148.491974)scale(0.1 -0.1)"> | ||
| 667 | <defs> | ||
| 668 | <path id="DejaVuSans-32" d="M 1228 531 | ||
| 669 | L 3431 531 | ||
| 670 | L 3431 0 | ||
| 671 | L 469 0 | ||
| 672 | L 469 531 | ||
| 673 | Q 828 903 1448 1529 | ||
| 674 | Q 2069 2156 2228 2338 | ||
| 675 | Q 2531 2678 2651 2914 | ||
| 676 | Q 2772 3150 2772 3378 | ||
| 677 | Q 2772 3750 2511 3984 | ||
| 678 | Q 2250 4219 1831 4219 | ||
| 679 | Q 1534 4219 1204 4116 | ||
| 680 | Q 875 4013 500 3803 | ||
| 681 | L 500 4441 | ||
| 682 | Q 881 4594 1212 4672 | ||
| 683 | Q 1544 4750 1819 4750 | ||
| 684 | Q 2544 4750 2975 4387 | ||
| 685 | Q 3406 4025 3406 3419 | ||
| 686 | Q 3406 3131 3298 2873 | ||
| 687 | Q 3191 2616 2906 2266 | ||
| 688 | Q 2828 2175 2409 1742 | ||
| 689 | Q 1991 1309 1228 531 | ||
| 690 | z | ||
| 691 | " transform="scale(0.015625)"/> | ||
| 692 | </defs> | ||
| 693 | <use xlink:href="#DejaVuSans-32"/> | ||
| 694 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 695 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 696 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 697 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 698 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 699 | </g> | ||
| 700 | </g> | ||
| 701 | </g> | ||
| 702 | <g id="ytick_6"> | ||
| 703 | <g id="line2d_12"> | ||
| 704 | <g> | ||
| 705 | <use xlink:href="#ma77a0d662c" x="67.078125" y="119.184326" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 706 | </g> | ||
| 707 | </g> | ||
| 708 | <g id="text_13"> | ||
| 709 | <!-- 250000 --> | ||
| 710 | <g transform="translate(21.903125 122.983545)scale(0.1 -0.1)"> | ||
| 711 | <use xlink:href="#DejaVuSans-32"/> | ||
| 712 | <use xlink:href="#DejaVuSans-35" x="63.623047"/> | ||
| 713 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 714 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 715 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 716 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 717 | </g> | ||
| 718 | </g> | ||
| 719 | </g> | ||
| 720 | <g id="ytick_7"> | ||
| 721 | <g id="line2d_13"> | ||
| 722 | <g> | ||
| 723 | <use xlink:href="#ma77a0d662c" x="67.078125" y="93.675897" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 724 | </g> | ||
| 725 | </g> | ||
| 726 | <g id="text_14"> | ||
| 727 | <!-- 300000 --> | ||
| 728 | <g transform="translate(21.903125 97.475116)scale(0.1 -0.1)"> | ||
| 729 | <defs> | ||
| 730 | <path id="DejaVuSans-33" d="M 2597 2516 | ||
| 731 | Q 3050 2419 3304 2112 | ||
| 732 | Q 3559 1806 3559 1356 | ||
| 733 | Q 3559 666 3084 287 | ||
| 734 | Q 2609 -91 1734 -91 | ||
| 735 | Q 1441 -91 1130 -33 | ||
| 736 | Q 819 25 488 141 | ||
| 737 | L 488 750 | ||
| 738 | Q 750 597 1062 519 | ||
| 739 | Q 1375 441 1716 441 | ||
| 740 | Q 2309 441 2620 675 | ||
| 741 | Q 2931 909 2931 1356 | ||
| 742 | Q 2931 1769 2642 2001 | ||
| 743 | Q 2353 2234 1838 2234 | ||
| 744 | L 1294 2234 | ||
| 745 | L 1294 2753 | ||
| 746 | L 1863 2753 | ||
| 747 | Q 2328 2753 2575 2939 | ||
| 748 | Q 2822 3125 2822 3475 | ||
| 749 | Q 2822 3834 2567 4026 | ||
| 750 | Q 2313 4219 1838 4219 | ||
| 751 | Q 1578 4219 1281 4162 | ||
| 752 | Q 984 4106 628 3988 | ||
| 753 | L 628 4550 | ||
| 754 | Q 988 4650 1302 4700 | ||
| 755 | Q 1616 4750 1894 4750 | ||
| 756 | Q 2613 4750 3031 4423 | ||
| 757 | Q 3450 4097 3450 3541 | ||
| 758 | Q 3450 3153 3228 2886 | ||
| 759 | Q 3006 2619 2597 2516 | ||
| 760 | z | ||
| 761 | " transform="scale(0.015625)"/> | ||
| 762 | </defs> | ||
| 763 | <use xlink:href="#DejaVuSans-33"/> | ||
| 764 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 765 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 766 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 767 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 768 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 769 | </g> | ||
| 770 | </g> | ||
| 771 | </g> | ||
| 772 | <g id="ytick_8"> | ||
| 773 | <g id="line2d_14"> | ||
| 774 | <g> | ||
| 775 | <use xlink:href="#ma77a0d662c" x="67.078125" y="68.167468" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 776 | </g> | ||
| 777 | </g> | ||
| 778 | <g id="text_15"> | ||
| 779 | <!-- 350000 --> | ||
| 780 | <g transform="translate(21.903125 71.966686)scale(0.1 -0.1)"> | ||
| 781 | <use xlink:href="#DejaVuSans-33"/> | ||
| 782 | <use xlink:href="#DejaVuSans-35" x="63.623047"/> | ||
| 783 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 784 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 785 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 786 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 787 | </g> | ||
| 788 | </g> | ||
| 789 | </g> | ||
| 790 | <g id="ytick_9"> | ||
| 791 | <g id="line2d_15"> | ||
| 792 | <g> | ||
| 793 | <use xlink:href="#ma77a0d662c" x="67.078125" y="42.659039" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 794 | </g> | ||
| 795 | </g> | ||
| 796 | <g id="text_16"> | ||
| 797 | <!-- 400000 --> | ||
| 798 | <g transform="translate(21.903125 46.458257)scale(0.1 -0.1)"> | ||
| 799 | <defs> | ||
| 800 | <path id="DejaVuSans-34" d="M 2419 4116 | ||
| 801 | L 825 1625 | ||
| 802 | L 2419 1625 | ||
| 803 | L 2419 4116 | ||
| 804 | z | ||
| 805 | M 2253 4666 | ||
| 806 | L 3047 4666 | ||
| 807 | L 3047 1625 | ||
| 808 | L 3713 1625 | ||
| 809 | L 3713 1100 | ||
| 810 | L 3047 1100 | ||
| 811 | L 3047 0 | ||
| 812 | L 2419 0 | ||
| 813 | L 2419 1100 | ||
| 814 | L 313 1100 | ||
| 815 | L 313 1709 | ||
| 816 | L 2253 4666 | ||
| 817 | z | ||
| 818 | " transform="scale(0.015625)"/> | ||
| 819 | </defs> | ||
| 820 | <use xlink:href="#DejaVuSans-34"/> | ||
| 821 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 822 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 823 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 824 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 825 | <use xlink:href="#DejaVuSans-30" x="318.115234"/> | ||
| 826 | </g> | ||
| 827 | </g> | ||
| 828 | </g> | ||
| 829 | <g id="text_17"> | ||
| 830 | <!-- File size (KB) --> | ||
| 831 | <g transform="translate(15.823437 175.197396)rotate(-90)scale(0.1 -0.1)"> | ||
| 832 | <defs> | ||
| 833 | <path id="DejaVuSans-Oblique-46" d="M 1081 4666 | ||
| 834 | L 3756 4666 | ||
| 835 | L 3653 4134 | ||
| 836 | L 1606 4134 | ||
| 837 | L 1338 2759 | ||
| 838 | L 3188 2759 | ||
| 839 | L 3084 2228 | ||
| 840 | L 1234 2228 | ||
| 841 | L 800 0 | ||
| 842 | L 172 0 | ||
| 843 | L 1081 4666 | ||
| 844 | z | ||
| 845 | " transform="scale(0.015625)"/> | ||
| 846 | <path id="DejaVuSans-Oblique-73" d="M 3200 3397 | ||
| 847 | L 3091 2853 | ||
| 848 | Q 2863 2978 2609 3040 | ||
| 849 | Q 2356 3103 2088 3103 | ||
| 850 | Q 1634 3103 1373 2948 | ||
| 851 | Q 1113 2794 1113 2528 | ||
| 852 | Q 1113 2219 1719 2053 | ||
| 853 | Q 1766 2041 1788 2034 | ||
| 854 | L 1972 1978 | ||
| 855 | Q 2547 1819 2739 1644 | ||
| 856 | Q 2931 1469 2931 1166 | ||
| 857 | Q 2931 609 2489 259 | ||
| 858 | Q 2047 -91 1331 -91 | ||
| 859 | Q 1053 -91 747 -37 | ||
| 860 | Q 441 16 72 128 | ||
| 861 | L 184 722 | ||
| 862 | Q 500 559 806 475 | ||
| 863 | Q 1113 391 1394 391 | ||
| 864 | Q 1816 391 2080 572 | ||
| 865 | Q 2344 753 2344 1031 | ||
| 866 | Q 2344 1331 1650 1516 | ||
| 867 | L 1591 1531 | ||
| 868 | L 1394 1581 | ||
| 869 | Q 956 1697 753 1886 | ||
| 870 | Q 550 2075 550 2369 | ||
| 871 | Q 550 2928 970 3256 | ||
| 872 | Q 1391 3584 2113 3584 | ||
| 873 | Q 2397 3584 2667 3537 | ||
| 874 | Q 2938 3491 3200 3397 | ||
| 875 | z | ||
| 876 | " transform="scale(0.015625)"/> | ||
| 877 | <path id="DejaVuSans-Oblique-28" d="M 2731 4856 | ||
| 878 | Q 1903 3822 1495 2892 | ||
| 879 | Q 1088 1963 1088 1100 | ||
| 880 | Q 1088 606 1206 120 | ||
| 881 | Q 1325 -366 1563 -844 | ||
| 882 | L 1063 -844 | ||
| 883 | Q 775 -306 634 201 | ||
| 884 | Q 494 709 494 1197 | ||
| 885 | Q 494 2125 923 3036 | ||
| 886 | Q 1353 3947 2222 4856 | ||
| 887 | L 2731 4856 | ||
| 888 | z | ||
| 889 | " transform="scale(0.015625)"/> | ||
| 890 | <path id="DejaVuSans-Oblique-4b" d="M 1081 4666 | ||
| 891 | L 1716 4666 | ||
| 892 | L 1331 2700 | ||
| 893 | L 3781 4666 | ||
| 894 | L 4622 4666 | ||
| 895 | L 1850 2438 | ||
| 896 | L 3878 0 | ||
| 897 | L 3109 0 | ||
| 898 | L 1247 2272 | ||
| 899 | L 806 0 | ||
| 900 | L 172 0 | ||
| 901 | L 1081 4666 | ||
| 902 | z | ||
| 903 | " transform="scale(0.015625)"/> | ||
| 904 | <path id="DejaVuSans-Oblique-42" d="M 1081 4666 | ||
| 905 | L 2694 4666 | ||
| 906 | Q 3350 4666 3675 4422 | ||
| 907 | Q 4000 4178 4000 3688 | ||
| 908 | Q 4000 3238 3720 2911 | ||
| 909 | Q 3441 2584 2988 2516 | ||
| 910 | Q 3375 2428 3569 2181 | ||
| 911 | Q 3763 1934 3763 1522 | ||
| 912 | Q 3763 819 3242 409 | ||
| 913 | Q 2722 0 1819 0 | ||
| 914 | L 172 0 | ||
| 915 | L 1081 4666 | ||
| 916 | z | ||
| 917 | M 1234 2228 | ||
| 918 | L 903 519 | ||
| 919 | L 1919 519 | ||
| 920 | Q 2491 519 2800 781 | ||
| 921 | Q 3109 1044 3109 1522 | ||
| 922 | Q 3109 1891 2904 2059 | ||
| 923 | Q 2700 2228 2247 2228 | ||
| 924 | L 1234 2228 | ||
| 925 | z | ||
| 926 | M 1606 4147 | ||
| 927 | L 1331 2741 | ||
| 928 | L 2272 2741 | ||
| 929 | Q 2775 2741 3058 2959 | ||
| 930 | Q 3341 3178 3341 3566 | ||
| 931 | Q 3341 3869 3150 4008 | ||
| 932 | Q 2959 4147 2541 4147 | ||
| 933 | L 1606 4147 | ||
| 934 | z | ||
| 935 | " transform="scale(0.015625)"/> | ||
| 936 | <path id="DejaVuSans-Oblique-29" d="M -397 -844 | ||
| 937 | Q 434 191 840 1120 | ||
| 938 | Q 1247 2050 1247 2913 | ||
| 939 | Q 1247 3406 1130 3892 | ||
| 940 | Q 1013 4378 775 4856 | ||
| 941 | L 1275 4856 | ||
| 942 | Q 1563 4316 1703 3812 | ||
| 943 | Q 1844 3309 1844 2822 | ||
| 944 | Q 1844 1891 1411 973 | ||
| 945 | Q 978 56 116 -844 | ||
| 946 | L -397 -844 | ||
| 947 | z | ||
| 948 | " transform="scale(0.015625)"/> | ||
| 949 | </defs> | ||
| 950 | <use xlink:href="#DejaVuSans-Oblique-46"/> | ||
| 951 | <use xlink:href="#DejaVuSans-Oblique-69" x="57.519531"/> | ||
| 952 | <use xlink:href="#DejaVuSans-Oblique-6c" x="85.302734"/> | ||
| 953 | <use xlink:href="#DejaVuSans-Oblique-65" x="113.085938"/> | ||
| 954 | <use xlink:href="#DejaVuSans-Oblique-20" x="174.609375"/> | ||
| 955 | <use xlink:href="#DejaVuSans-Oblique-73" x="206.396484"/> | ||
| 956 | <use xlink:href="#DejaVuSans-Oblique-69" x="258.496094"/> | ||
| 957 | <use xlink:href="#DejaVuSans-Oblique-7a" x="286.279297"/> | ||
| 958 | <use xlink:href="#DejaVuSans-Oblique-65" x="338.769531"/> | ||
| 959 | <use xlink:href="#DejaVuSans-Oblique-20" x="400.292969"/> | ||
| 960 | <use xlink:href="#DejaVuSans-Oblique-28" x="432.080078"/> | ||
| 961 | <use xlink:href="#DejaVuSans-Oblique-4b" x="471.09375"/> | ||
| 962 | <use xlink:href="#DejaVuSans-Oblique-42" x="536.669922"/> | ||
| 963 | <use xlink:href="#DejaVuSans-Oblique-29" x="605.273438"/> | ||
| 964 | </g> | ||
| 965 | </g> | ||
| 966 | </g> | ||
| 967 | <g id="line2d_16"> | ||
| 968 | <path d="M 94.770241 246.72438 | ||
| 969 | L 205.538707 246.705708 | ||
| 970 | L 316.307173 246.518986 | ||
| 971 | L 427.075639 244.634781 | ||
| 972 | L 537.844105 225.96261 | ||
| 973 | L 648.612571 39.240909 | ||
| 974 | " clip-path="url(#p7aac08e103)" style="fill: none; stroke: #000000; stroke-width: 1.5; stroke-linecap: square"/> | ||
| 975 | </g> | ||
| 976 | <g id="line2d_17"> | ||
| 977 | <path d="M 94.770241 246.725758 | ||
| 978 | L 205.538707 246.71984 | ||
| 979 | L 316.307173 246.664741 | ||
| 980 | L 427.075639 246.11427 | ||
| 981 | L 537.844105 240.604449 | ||
| 982 | L 648.612571 186.526579 | ||
| 983 | " clip-path="url(#p7aac08e103)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #000000; stroke-width: 1.5"/> | ||
| 984 | </g> | ||
| 985 | <g id="patch_3"> | ||
| 986 | <path d="M 67.078125 257.1 | ||
| 987 | L 67.078125 28.866667 | ||
| 988 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 989 | </g> | ||
| 990 | <g id="patch_4"> | ||
| 991 | <path d="M 676.304688 257.1 | ||
| 992 | L 676.304688 28.866667 | ||
| 993 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 994 | </g> | ||
| 995 | <g id="patch_5"> | ||
| 996 | <path d="M 67.078125 257.1 | ||
| 997 | L 676.304688 257.1 | ||
| 998 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 999 | </g> | ||
| 1000 | <g id="patch_6"> | ||
| 1001 | <path d="M 67.078125 28.866667 | ||
| 1002 | L 676.304688 28.866667 | ||
| 1003 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1004 | </g> | ||
| 1005 | <g id="text_18"> | ||
| 1006 | <!-- Encode to FASTA out filesize --> | ||
| 1007 | <g transform="translate(287.257344 22.866667)scale(0.12 -0.12)"> | ||
| 1008 | <defs> | ||
| 1009 | <path id="DejaVuSans-45" d="M 628 4666 | ||
| 1010 | L 3578 4666 | ||
| 1011 | L 3578 4134 | ||
| 1012 | L 1259 4134 | ||
| 1013 | L 1259 2753 | ||
| 1014 | L 3481 2753 | ||
| 1015 | L 3481 2222 | ||
| 1016 | L 1259 2222 | ||
| 1017 | L 1259 531 | ||
| 1018 | L 3634 531 | ||
| 1019 | L 3634 0 | ||
| 1020 | L 628 0 | ||
| 1021 | L 628 4666 | ||
| 1022 | z | ||
| 1023 | " transform="scale(0.015625)"/> | ||
| 1024 | <path id="DejaVuSans-6e" d="M 3513 2113 | ||
| 1025 | L 3513 0 | ||
| 1026 | L 2938 0 | ||
| 1027 | L 2938 2094 | ||
| 1028 | Q 2938 2591 2744 2837 | ||
| 1029 | Q 2550 3084 2163 3084 | ||
| 1030 | Q 1697 3084 1428 2787 | ||
| 1031 | Q 1159 2491 1159 1978 | ||
| 1032 | L 1159 0 | ||
| 1033 | L 581 0 | ||
| 1034 | L 581 3500 | ||
| 1035 | L 1159 3500 | ||
| 1036 | L 1159 2956 | ||
| 1037 | Q 1366 3272 1645 3428 | ||
| 1038 | Q 1925 3584 2291 3584 | ||
| 1039 | Q 2894 3584 3203 3211 | ||
| 1040 | Q 3513 2838 3513 2113 | ||
| 1041 | z | ||
| 1042 | " transform="scale(0.015625)"/> | ||
| 1043 | <path id="DejaVuSans-63" d="M 3122 3366 | ||
| 1044 | L 3122 2828 | ||
| 1045 | Q 2878 2963 2633 3030 | ||
| 1046 | Q 2388 3097 2138 3097 | ||
| 1047 | Q 1578 3097 1268 2742 | ||
| 1048 | Q 959 2388 959 1747 | ||
| 1049 | Q 959 1106 1268 751 | ||
| 1050 | Q 1578 397 2138 397 | ||
| 1051 | Q 2388 397 2633 464 | ||
| 1052 | Q 2878 531 3122 666 | ||
| 1053 | L 3122 134 | ||
| 1054 | Q 2881 22 2623 -34 | ||
| 1055 | Q 2366 -91 2075 -91 | ||
| 1056 | Q 1284 -91 818 406 | ||
| 1057 | Q 353 903 353 1747 | ||
| 1058 | Q 353 2603 823 3093 | ||
| 1059 | Q 1294 3584 2113 3584 | ||
| 1060 | Q 2378 3584 2631 3529 | ||
| 1061 | Q 2884 3475 3122 3366 | ||
| 1062 | z | ||
| 1063 | " transform="scale(0.015625)"/> | ||
| 1064 | <path id="DejaVuSans-6f" d="M 1959 3097 | ||
| 1065 | Q 1497 3097 1228 2736 | ||
| 1066 | Q 959 2375 959 1747 | ||
| 1067 | Q 959 1119 1226 758 | ||
| 1068 | Q 1494 397 1959 397 | ||
| 1069 | Q 2419 397 2687 759 | ||
| 1070 | Q 2956 1122 2956 1747 | ||
| 1071 | Q 2956 2369 2687 2733 | ||
| 1072 | Q 2419 3097 1959 3097 | ||
| 1073 | z | ||
| 1074 | M 1959 3584 | ||
| 1075 | Q 2709 3584 3137 3096 | ||
| 1076 | Q 3566 2609 3566 1747 | ||
| 1077 | Q 3566 888 3137 398 | ||
| 1078 | Q 2709 -91 1959 -91 | ||
| 1079 | Q 1206 -91 779 398 | ||
| 1080 | Q 353 888 353 1747 | ||
| 1081 | Q 353 2609 779 3096 | ||
| 1082 | Q 1206 3584 1959 3584 | ||
| 1083 | z | ||
| 1084 | " transform="scale(0.015625)"/> | ||
| 1085 | <path id="DejaVuSans-64" d="M 2906 2969 | ||
| 1086 | L 2906 4863 | ||
| 1087 | L 3481 4863 | ||
| 1088 | L 3481 0 | ||
| 1089 | L 2906 0 | ||
| 1090 | L 2906 525 | ||
| 1091 | Q 2725 213 2448 61 | ||
| 1092 | Q 2172 -91 1784 -91 | ||
| 1093 | Q 1150 -91 751 415 | ||
| 1094 | Q 353 922 353 1747 | ||
| 1095 | Q 353 2572 751 3078 | ||
| 1096 | Q 1150 3584 1784 3584 | ||
| 1097 | Q 2172 3584 2448 3432 | ||
| 1098 | Q 2725 3281 2906 2969 | ||
| 1099 | z | ||
| 1100 | M 947 1747 | ||
| 1101 | Q 947 1113 1208 752 | ||
| 1102 | Q 1469 391 1925 391 | ||
| 1103 | Q 2381 391 2643 752 | ||
| 1104 | Q 2906 1113 2906 1747 | ||
| 1105 | Q 2906 2381 2643 2742 | ||
| 1106 | Q 2381 3103 1925 3103 | ||
| 1107 | Q 1469 3103 1208 2742 | ||
| 1108 | Q 947 2381 947 1747 | ||
| 1109 | z | ||
| 1110 | " transform="scale(0.015625)"/> | ||
| 1111 | <path id="DejaVuSans-65" d="M 3597 1894 | ||
| 1112 | L 3597 1613 | ||
| 1113 | L 953 1613 | ||
| 1114 | Q 991 1019 1311 708 | ||
| 1115 | Q 1631 397 2203 397 | ||
| 1116 | Q 2534 397 2845 478 | ||
| 1117 | Q 3156 559 3463 722 | ||
| 1118 | L 3463 178 | ||
| 1119 | Q 3153 47 2828 -22 | ||
| 1120 | Q 2503 -91 2169 -91 | ||
| 1121 | Q 1331 -91 842 396 | ||
| 1122 | Q 353 884 353 1716 | ||
| 1123 | Q 353 2575 817 3079 | ||
| 1124 | Q 1281 3584 2069 3584 | ||
| 1125 | Q 2775 3584 3186 3129 | ||
| 1126 | Q 3597 2675 3597 1894 | ||
| 1127 | z | ||
| 1128 | M 3022 2063 | ||
| 1129 | Q 3016 2534 2758 2815 | ||
| 1130 | Q 2500 3097 2075 3097 | ||
| 1131 | Q 1594 3097 1305 2825 | ||
| 1132 | Q 1016 2553 972 2059 | ||
| 1133 | L 3022 2063 | ||
| 1134 | z | ||
| 1135 | " transform="scale(0.015625)"/> | ||
| 1136 | <path id="DejaVuSans-20" transform="scale(0.015625)"/> | ||
| 1137 | <path id="DejaVuSans-74" d="M 1172 4494 | ||
| 1138 | L 1172 3500 | ||
| 1139 | L 2356 3500 | ||
| 1140 | L 2356 3053 | ||
| 1141 | L 1172 3053 | ||
| 1142 | L 1172 1153 | ||
| 1143 | Q 1172 725 1289 603 | ||
| 1144 | Q 1406 481 1766 481 | ||
| 1145 | L 2356 481 | ||
| 1146 | L 2356 0 | ||
| 1147 | L 1766 0 | ||
| 1148 | Q 1100 0 847 248 | ||
| 1149 | Q 594 497 594 1153 | ||
| 1150 | L 594 3053 | ||
| 1151 | L 172 3053 | ||
| 1152 | L 172 3500 | ||
| 1153 | L 594 3500 | ||
| 1154 | L 594 4494 | ||
| 1155 | L 1172 4494 | ||
| 1156 | z | ||
| 1157 | " transform="scale(0.015625)"/> | ||
| 1158 | <path id="DejaVuSans-46" d="M 628 4666 | ||
| 1159 | L 3309 4666 | ||
| 1160 | L 3309 4134 | ||
| 1161 | L 1259 4134 | ||
| 1162 | L 1259 2759 | ||
| 1163 | L 3109 2759 | ||
| 1164 | L 3109 2228 | ||
| 1165 | L 1259 2228 | ||
| 1166 | L 1259 0 | ||
| 1167 | L 628 0 | ||
| 1168 | L 628 4666 | ||
| 1169 | z | ||
| 1170 | " transform="scale(0.015625)"/> | ||
| 1171 | <path id="DejaVuSans-41" d="M 2188 4044 | ||
| 1172 | L 1331 1722 | ||
| 1173 | L 3047 1722 | ||
| 1174 | L 2188 4044 | ||
| 1175 | z | ||
| 1176 | M 1831 4666 | ||
| 1177 | L 2547 4666 | ||
| 1178 | L 4325 0 | ||
| 1179 | L 3669 0 | ||
| 1180 | L 3244 1197 | ||
| 1181 | L 1141 1197 | ||
| 1182 | L 716 0 | ||
| 1183 | L 50 0 | ||
| 1184 | L 1831 4666 | ||
| 1185 | z | ||
| 1186 | " transform="scale(0.015625)"/> | ||
| 1187 | <path id="DejaVuSans-53" d="M 3425 4513 | ||
| 1188 | L 3425 3897 | ||
| 1189 | Q 3066 4069 2747 4153 | ||
| 1190 | Q 2428 4238 2131 4238 | ||
| 1191 | Q 1616 4238 1336 4038 | ||
| 1192 | Q 1056 3838 1056 3469 | ||
| 1193 | Q 1056 3159 1242 3001 | ||
| 1194 | Q 1428 2844 1947 2747 | ||
| 1195 | L 2328 2669 | ||
| 1196 | Q 3034 2534 3370 2195 | ||
| 1197 | Q 3706 1856 3706 1288 | ||
| 1198 | Q 3706 609 3251 259 | ||
| 1199 | Q 2797 -91 1919 -91 | ||
| 1200 | Q 1588 -91 1214 -16 | ||
| 1201 | Q 841 59 441 206 | ||
| 1202 | L 441 856 | ||
| 1203 | Q 825 641 1194 531 | ||
| 1204 | Q 1563 422 1919 422 | ||
| 1205 | Q 2459 422 2753 634 | ||
| 1206 | Q 3047 847 3047 1241 | ||
| 1207 | Q 3047 1584 2836 1778 | ||
| 1208 | Q 2625 1972 2144 2069 | ||
| 1209 | L 1759 2144 | ||
| 1210 | Q 1053 2284 737 2584 | ||
| 1211 | Q 422 2884 422 3419 | ||
| 1212 | Q 422 4038 858 4394 | ||
| 1213 | Q 1294 4750 2059 4750 | ||
| 1214 | Q 2388 4750 2728 4690 | ||
| 1215 | Q 3069 4631 3425 4513 | ||
| 1216 | z | ||
| 1217 | " transform="scale(0.015625)"/> | ||
| 1218 | <path id="DejaVuSans-54" d="M -19 4666 | ||
| 1219 | L 3928 4666 | ||
| 1220 | L 3928 4134 | ||
| 1221 | L 2272 4134 | ||
| 1222 | L 2272 0 | ||
| 1223 | L 1638 0 | ||
| 1224 | L 1638 4134 | ||
| 1225 | L -19 4134 | ||
| 1226 | L -19 4666 | ||
| 1227 | z | ||
| 1228 | " transform="scale(0.015625)"/> | ||
| 1229 | <path id="DejaVuSans-75" d="M 544 1381 | ||
| 1230 | L 544 3500 | ||
| 1231 | L 1119 3500 | ||
| 1232 | L 1119 1403 | ||
| 1233 | Q 1119 906 1312 657 | ||
| 1234 | Q 1506 409 1894 409 | ||
| 1235 | Q 2359 409 2629 706 | ||
| 1236 | Q 2900 1003 2900 1516 | ||
| 1237 | L 2900 3500 | ||
| 1238 | L 3475 3500 | ||
| 1239 | L 3475 0 | ||
| 1240 | L 2900 0 | ||
| 1241 | L 2900 538 | ||
| 1242 | Q 2691 219 2414 64 | ||
| 1243 | Q 2138 -91 1772 -91 | ||
| 1244 | Q 1169 -91 856 284 | ||
| 1245 | Q 544 659 544 1381 | ||
| 1246 | z | ||
| 1247 | M 1991 3584 | ||
| 1248 | L 1991 3584 | ||
| 1249 | z | ||
| 1250 | " transform="scale(0.015625)"/> | ||
| 1251 | <path id="DejaVuSans-66" d="M 2375 4863 | ||
| 1252 | L 2375 4384 | ||
| 1253 | L 1825 4384 | ||
| 1254 | Q 1516 4384 1395 4259 | ||
| 1255 | Q 1275 4134 1275 3809 | ||
| 1256 | L 1275 3500 | ||
| 1257 | L 2222 3500 | ||
| 1258 | L 2222 3053 | ||
| 1259 | L 1275 3053 | ||
| 1260 | L 1275 0 | ||
| 1261 | L 697 0 | ||
| 1262 | L 697 3053 | ||
| 1263 | L 147 3053 | ||
| 1264 | L 147 3500 | ||
| 1265 | L 697 3500 | ||
| 1266 | L 697 3744 | ||
| 1267 | Q 697 4328 969 4595 | ||
| 1268 | Q 1241 4863 1831 4863 | ||
| 1269 | L 2375 4863 | ||
| 1270 | z | ||
| 1271 | " transform="scale(0.015625)"/> | ||
| 1272 | <path id="DejaVuSans-69" d="M 603 3500 | ||
| 1273 | L 1178 3500 | ||
| 1274 | L 1178 0 | ||
| 1275 | L 603 0 | ||
| 1276 | L 603 3500 | ||
| 1277 | z | ||
| 1278 | M 603 4863 | ||
| 1279 | L 1178 4863 | ||
| 1280 | L 1178 4134 | ||
| 1281 | L 603 4134 | ||
| 1282 | L 603 4863 | ||
| 1283 | z | ||
| 1284 | " transform="scale(0.015625)"/> | ||
| 1285 | <path id="DejaVuSans-6c" d="M 603 4863 | ||
| 1286 | L 1178 4863 | ||
| 1287 | L 1178 0 | ||
| 1288 | L 603 0 | ||
| 1289 | L 603 4863 | ||
| 1290 | z | ||
| 1291 | " transform="scale(0.015625)"/> | ||
| 1292 | <path id="DejaVuSans-73" d="M 2834 3397 | ||
| 1293 | L 2834 2853 | ||
| 1294 | Q 2591 2978 2328 3040 | ||
| 1295 | Q 2066 3103 1784 3103 | ||
| 1296 | Q 1356 3103 1142 2972 | ||
| 1297 | Q 928 2841 928 2578 | ||
| 1298 | Q 928 2378 1081 2264 | ||
| 1299 | Q 1234 2150 1697 2047 | ||
| 1300 | L 1894 2003 | ||
| 1301 | Q 2506 1872 2764 1633 | ||
| 1302 | Q 3022 1394 3022 966 | ||
| 1303 | Q 3022 478 2636 193 | ||
| 1304 | Q 2250 -91 1575 -91 | ||
| 1305 | Q 1294 -91 989 -36 | ||
| 1306 | Q 684 19 347 128 | ||
| 1307 | L 347 722 | ||
| 1308 | Q 666 556 975 473 | ||
| 1309 | Q 1284 391 1588 391 | ||
| 1310 | Q 1994 391 2212 530 | ||
| 1311 | Q 2431 669 2431 922 | ||
| 1312 | Q 2431 1156 2273 1281 | ||
| 1313 | Q 2116 1406 1581 1522 | ||
| 1314 | L 1381 1569 | ||
| 1315 | Q 847 1681 609 1914 | ||
| 1316 | Q 372 2147 372 2553 | ||
| 1317 | Q 372 3047 722 3315 | ||
| 1318 | Q 1072 3584 1716 3584 | ||
| 1319 | Q 2034 3584 2315 3537 | ||
| 1320 | Q 2597 3491 2834 3397 | ||
| 1321 | z | ||
| 1322 | " transform="scale(0.015625)"/> | ||
| 1323 | <path id="DejaVuSans-7a" d="M 353 3500 | ||
| 1324 | L 3084 3500 | ||
| 1325 | L 3084 2975 | ||
| 1326 | L 922 459 | ||
| 1327 | L 3084 459 | ||
| 1328 | L 3084 0 | ||
| 1329 | L 275 0 | ||
| 1330 | L 275 525 | ||
| 1331 | L 2438 3041 | ||
| 1332 | L 353 3041 | ||
| 1333 | L 353 3500 | ||
| 1334 | z | ||
| 1335 | " transform="scale(0.015625)"/> | ||
| 1336 | </defs> | ||
| 1337 | <use xlink:href="#DejaVuSans-45"/> | ||
| 1338 | <use xlink:href="#DejaVuSans-6e" x="63.183594"/> | ||
| 1339 | <use xlink:href="#DejaVuSans-63" x="126.5625"/> | ||
| 1340 | <use xlink:href="#DejaVuSans-6f" x="181.542969"/> | ||
| 1341 | <use xlink:href="#DejaVuSans-64" x="242.724609"/> | ||
| 1342 | <use xlink:href="#DejaVuSans-65" x="306.201172"/> | ||
| 1343 | <use xlink:href="#DejaVuSans-20" x="367.724609"/> | ||
| 1344 | <use xlink:href="#DejaVuSans-74" x="399.511719"/> | ||
| 1345 | <use xlink:href="#DejaVuSans-6f" x="438.720703"/> | ||
| 1346 | <use xlink:href="#DejaVuSans-20" x="499.902344"/> | ||
| 1347 | <use xlink:href="#DejaVuSans-46" x="531.689453"/> | ||
| 1348 | <use xlink:href="#DejaVuSans-41" x="580.083984"/> | ||
| 1349 | <use xlink:href="#DejaVuSans-53" x="648.492188"/> | ||
| 1350 | <use xlink:href="#DejaVuSans-54" x="711.96875"/> | ||
| 1351 | <use xlink:href="#DejaVuSans-41" x="765.302734"/> | ||
| 1352 | <use xlink:href="#DejaVuSans-20" x="833.710938"/> | ||
| 1353 | <use xlink:href="#DejaVuSans-6f" x="865.498047"/> | ||
| 1354 | <use xlink:href="#DejaVuSans-75" x="926.679688"/> | ||
| 1355 | <use xlink:href="#DejaVuSans-74" x="990.058594"/> | ||
| 1356 | <use xlink:href="#DejaVuSans-20" x="1029.267578"/> | ||
| 1357 | <use xlink:href="#DejaVuSans-66" x="1061.054688"/> | ||
| 1358 | <use xlink:href="#DejaVuSans-69" x="1096.259766"/> | ||
| 1359 | <use xlink:href="#DejaVuSans-6c" x="1124.042969"/> | ||
| 1360 | <use xlink:href="#DejaVuSans-65" x="1151.826172"/> | ||
| 1361 | <use xlink:href="#DejaVuSans-73" x="1213.349609"/> | ||
| 1362 | <use xlink:href="#DejaVuSans-69" x="1265.449219"/> | ||
| 1363 | <use xlink:href="#DejaVuSans-7a" x="1293.232422"/> | ||
| 1364 | <use xlink:href="#DejaVuSans-65" x="1345.722656"/> | ||
| 1365 | </g> | ||
| 1366 | </g> | ||
| 1367 | <g id="legend_1"> | ||
| 1368 | <g id="patch_7"> | ||
| 1369 | <path d="M 74.078125 66.222917 | ||
| 1370 | L 147.051562 66.222917 | ||
| 1371 | Q 149.051562 66.222917 149.051562 64.222917 | ||
| 1372 | L 149.051562 35.866667 | ||
| 1373 | Q 149.051562 33.866667 147.051562 33.866667 | ||
| 1374 | L 74.078125 33.866667 | ||
| 1375 | Q 72.078125 33.866667 72.078125 35.866667 | ||
| 1376 | L 72.078125 64.222917 | ||
| 1377 | Q 72.078125 66.222917 74.078125 66.222917 | ||
| 1378 | z | ||
| 1379 | " style="fill: #ffffff; opacity: 0.8"/> | ||
| 1380 | </g> | ||
| 1381 | <g id="line2d_18"> | ||
| 1382 | <path d="M 76.078125 41.965104 | ||
| 1383 | L 86.078125 41.965104 | ||
| 1384 | L 96.078125 41.965104 | ||
| 1385 | " style="fill: none; stroke: #000000; stroke-width: 1.5; stroke-linecap: square"/> | ||
| 1386 | </g> | ||
| 1387 | <g id="text_19"> | ||
| 1388 | <!-- Raw --> | ||
| 1389 | <g transform="translate(104.078125 45.465104)scale(0.1 -0.1)"> | ||
| 1390 | <defs> | ||
| 1391 | <path id="DejaVuSans-52" d="M 2841 2188 | ||
| 1392 | Q 3044 2119 3236 1894 | ||
| 1393 | Q 3428 1669 3622 1275 | ||
| 1394 | L 4263 0 | ||
| 1395 | L 3584 0 | ||
| 1396 | L 2988 1197 | ||
| 1397 | Q 2756 1666 2539 1819 | ||
| 1398 | Q 2322 1972 1947 1972 | ||
| 1399 | L 1259 1972 | ||
| 1400 | L 1259 0 | ||
| 1401 | L 628 0 | ||
| 1402 | L 628 4666 | ||
| 1403 | L 2053 4666 | ||
| 1404 | Q 2853 4666 3247 4331 | ||
| 1405 | Q 3641 3997 3641 3322 | ||
| 1406 | Q 3641 2881 3436 2590 | ||
| 1407 | Q 3231 2300 2841 2188 | ||
| 1408 | z | ||
| 1409 | M 1259 4147 | ||
| 1410 | L 1259 2491 | ||
| 1411 | L 2053 2491 | ||
| 1412 | Q 2509 2491 2742 2702 | ||
| 1413 | Q 2975 2913 2975 3322 | ||
| 1414 | Q 2975 3731 2742 3939 | ||
| 1415 | Q 2509 4147 2053 4147 | ||
| 1416 | L 1259 4147 | ||
| 1417 | z | ||
| 1418 | " transform="scale(0.015625)"/> | ||
| 1419 | <path id="DejaVuSans-61" d="M 2194 1759 | ||
| 1420 | Q 1497 1759 1228 1600 | ||
| 1421 | Q 959 1441 959 1056 | ||
| 1422 | Q 959 750 1161 570 | ||
| 1423 | Q 1363 391 1709 391 | ||
| 1424 | Q 2188 391 2477 730 | ||
| 1425 | Q 2766 1069 2766 1631 | ||
| 1426 | L 2766 1759 | ||
| 1427 | L 2194 1759 | ||
| 1428 | z | ||
| 1429 | M 3341 1997 | ||
| 1430 | L 3341 0 | ||
| 1431 | L 2766 0 | ||
| 1432 | L 2766 531 | ||
| 1433 | Q 2569 213 2275 61 | ||
| 1434 | Q 1981 -91 1556 -91 | ||
| 1435 | Q 1019 -91 701 211 | ||
| 1436 | Q 384 513 384 1019 | ||
| 1437 | Q 384 1609 779 1909 | ||
| 1438 | Q 1175 2209 1959 2209 | ||
| 1439 | L 2766 2209 | ||
| 1440 | L 2766 2266 | ||
| 1441 | Q 2766 2663 2505 2880 | ||
| 1442 | Q 2244 3097 1772 3097 | ||
| 1443 | Q 1472 3097 1187 3025 | ||
| 1444 | Q 903 2953 641 2809 | ||
| 1445 | L 641 3341 | ||
| 1446 | Q 956 3463 1253 3523 | ||
| 1447 | Q 1550 3584 1831 3584 | ||
| 1448 | Q 2591 3584 2966 3190 | ||
| 1449 | Q 3341 2797 3341 1997 | ||
| 1450 | z | ||
| 1451 | " transform="scale(0.015625)"/> | ||
| 1452 | <path id="DejaVuSans-77" d="M 269 3500 | ||
| 1453 | L 844 3500 | ||
| 1454 | L 1563 769 | ||
| 1455 | L 2278 3500 | ||
| 1456 | L 2956 3500 | ||
| 1457 | L 3675 769 | ||
| 1458 | L 4391 3500 | ||
| 1459 | L 4966 3500 | ||
| 1460 | L 4050 0 | ||
| 1461 | L 3372 0 | ||
| 1462 | L 2619 2869 | ||
| 1463 | L 1863 0 | ||
| 1464 | L 1184 0 | ||
| 1465 | L 269 3500 | ||
| 1466 | z | ||
| 1467 | " transform="scale(0.015625)"/> | ||
| 1468 | </defs> | ||
| 1469 | <use xlink:href="#DejaVuSans-52"/> | ||
| 1470 | <use xlink:href="#DejaVuSans-61" x="67.232422"/> | ||
| 1471 | <use xlink:href="#DejaVuSans-77" x="128.511719"/> | ||
| 1472 | </g> | ||
| 1473 | </g> | ||
| 1474 | <g id="line2d_19"> | ||
| 1475 | <path d="M 76.078125 56.643229 | ||
| 1476 | L 86.078125 56.643229 | ||
| 1477 | L 96.078125 56.643229 | ||
| 1478 | " style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #000000; stroke-width: 1.5"/> | ||
| 1479 | </g> | ||
| 1480 | <g id="text_20"> | ||
| 1481 | <!-- Gzipped --> | ||
| 1482 | <g transform="translate(104.078125 60.143229)scale(0.1 -0.1)"> | ||
| 1483 | <defs> | ||
| 1484 | <path id="DejaVuSans-47" d="M 3809 666 | ||
| 1485 | L 3809 1919 | ||
| 1486 | L 2778 1919 | ||
| 1487 | L 2778 2438 | ||
| 1488 | L 4434 2438 | ||
| 1489 | L 4434 434 | ||
| 1490 | Q 4069 175 3628 42 | ||
| 1491 | Q 3188 -91 2688 -91 | ||
| 1492 | Q 1594 -91 976 548 | ||
| 1493 | Q 359 1188 359 2328 | ||
| 1494 | Q 359 3472 976 4111 | ||
| 1495 | Q 1594 4750 2688 4750 | ||
| 1496 | Q 3144 4750 3555 4637 | ||
| 1497 | Q 3966 4525 4313 4306 | ||
| 1498 | L 4313 3634 | ||
| 1499 | Q 3963 3931 3569 4081 | ||
| 1500 | Q 3175 4231 2741 4231 | ||
| 1501 | Q 1884 4231 1454 3753 | ||
| 1502 | Q 1025 3275 1025 2328 | ||
| 1503 | Q 1025 1384 1454 906 | ||
| 1504 | Q 1884 428 2741 428 | ||
| 1505 | Q 3075 428 3337 486 | ||
| 1506 | Q 3600 544 3809 666 | ||
| 1507 | z | ||
| 1508 | " transform="scale(0.015625)"/> | ||
| 1509 | <path id="DejaVuSans-70" d="M 1159 525 | ||
| 1510 | L 1159 -1331 | ||
| 1511 | L 581 -1331 | ||
| 1512 | L 581 3500 | ||
| 1513 | L 1159 3500 | ||
| 1514 | L 1159 2969 | ||
| 1515 | Q 1341 3281 1617 3432 | ||
| 1516 | Q 1894 3584 2278 3584 | ||
| 1517 | Q 2916 3584 3314 3078 | ||
| 1518 | Q 3713 2572 3713 1747 | ||
| 1519 | Q 3713 922 3314 415 | ||
| 1520 | Q 2916 -91 2278 -91 | ||
| 1521 | Q 1894 -91 1617 61 | ||
| 1522 | Q 1341 213 1159 525 | ||
| 1523 | z | ||
| 1524 | M 3116 1747 | ||
| 1525 | Q 3116 2381 2855 2742 | ||
| 1526 | Q 2594 3103 2138 3103 | ||
| 1527 | Q 1681 3103 1420 2742 | ||
| 1528 | Q 1159 2381 1159 1747 | ||
| 1529 | Q 1159 1113 1420 752 | ||
| 1530 | Q 1681 391 2138 391 | ||
| 1531 | Q 2594 391 2855 752 | ||
| 1532 | Q 3116 1113 3116 1747 | ||
| 1533 | z | ||
| 1534 | " transform="scale(0.015625)"/> | ||
| 1535 | </defs> | ||
| 1536 | <use xlink:href="#DejaVuSans-47"/> | ||
| 1537 | <use xlink:href="#DejaVuSans-7a" x="77.490234"/> | ||
| 1538 | <use xlink:href="#DejaVuSans-69" x="129.980469"/> | ||
| 1539 | <use xlink:href="#DejaVuSans-70" x="157.763672"/> | ||
| 1540 | <use xlink:href="#DejaVuSans-70" x="221.240234"/> | ||
| 1541 | <use xlink:href="#DejaVuSans-65" x="284.716797"/> | ||
| 1542 | <use xlink:href="#DejaVuSans-64" x="346.240234"/> | ||
| 1543 | </g> | ||
| 1544 | </g> | ||
| 1545 | </g> | ||
| 1546 | </g> | ||
| 1547 | </g> | ||
| 1548 | <defs> | ||
| 1549 | <clipPath id="p7aac08e103"> | ||
| 1550 | <rect x="67.078125" y="28.866667" width="609.226562" height="228.233333"/> | ||
| 1551 | </clipPath> | ||
| 1552 | </defs> | ||
| 1553 | </svg> | ||
diff --git a/static/assets/posts/dna-sequence/chart-speed.py b/static/assets/posts/dna-sequence/chart-speed.py new file mode 100644 index 0000000..c07b057 --- /dev/null +++ b/static/assets/posts/dna-sequence/chart-speed.py | |||
| @@ -0,0 +1,23 @@ | |||
| 1 | import csv | ||
| 2 | |||
| 3 | import matplotlib.pyplot as plt | ||
| 4 | import pandas as pd | ||
| 5 | |||
| 6 | # Read the data | ||
| 7 | df = pd.read_csv("benchmarks.csv") | ||
| 8 | |||
| 9 | # Settings | ||
| 10 | plt.title("Encode to FASTA speed over time") | ||
| 11 | plt.tight_layout(pad=2) | ||
| 12 | fig = plt.gcf() | ||
| 13 | fig.set_size_inches(10, 4) | ||
| 14 | |||
| 15 | # Plotting | ||
| 16 | plt.plot(df["Packages"], df["Encode to FASTA (ms)"], label = "ALB", color="black", linestyle="--") | ||
| 17 | |||
| 18 | # Adding x and y axis labels | ||
| 19 | plt.xlabel("Size of an input file", fontstyle="italic") | ||
| 20 | plt.ylabel("Encoding time (ms)", fontstyle="italic") | ||
| 21 | |||
| 22 | # Export as SVG | ||
| 23 | plt.savefig("chart-speed.svg", format="svg") | ||
diff --git a/static/assets/posts/dna-sequence/chart-speed.svg b/static/assets/posts/dna-sequence/chart-speed.svg new file mode 100644 index 0000000..7bb0c29 --- /dev/null +++ b/static/assets/posts/dna-sequence/chart-speed.svg | |||
| @@ -0,0 +1,1416 @@ | |||
| 1 | <?xml version="1.0" encoding="utf-8" standalone="no"?> | ||
| 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||
| 3 | "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
| 4 | <svg xmlns:xlink="http://www.w3.org/1999/xlink" width="720pt" height="288pt" viewBox="0 0 720 288" xmlns="http://www.w3.org/2000/svg" version="1.1"> | ||
| 5 | <metadata> | ||
| 6 | <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | ||
| 7 | <cc:Work> | ||
| 8 | <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> | ||
| 9 | <dc:date>2023-08-05T13:29:20.420382</dc:date> | ||
| 10 | <dc:format>image/svg+xml</dc:format> | ||
| 11 | <dc:creator> | ||
| 12 | <cc:Agent> | ||
| 13 | <dc:title>Matplotlib v3.5.2, https://matplotlib.org/</dc:title> | ||
| 14 | </cc:Agent> | ||
| 15 | </dc:creator> | ||
| 16 | </cc:Work> | ||
| 17 | </rdf:RDF> | ||
| 18 | </metadata> | ||
| 19 | <defs> | ||
| 20 | <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style> | ||
| 21 | </defs> | ||
| 22 | <g id="figure_1"> | ||
| 23 | <g id="patch_1"> | ||
| 24 | <path d="M 0 288 | ||
| 25 | L 720 288 | ||
| 26 | L 720 0 | ||
| 27 | L 0 0 | ||
| 28 | z | ||
| 29 | " style="fill: #ffffff"/> | ||
| 30 | </g> | ||
| 31 | <g id="axes_1"> | ||
| 32 | <g id="patch_2"> | ||
| 33 | <path d="M 67.078125 257.1 | ||
| 34 | L 676.304688 257.1 | ||
| 35 | L 676.304688 28.866667 | ||
| 36 | L 67.078125 28.866667 | ||
| 37 | z | ||
| 38 | " style="fill: #ffffff"/> | ||
| 39 | </g> | ||
| 40 | <g id="matplotlib.axis_1"> | ||
| 41 | <g id="xtick_1"> | ||
| 42 | <g id="line2d_1"> | ||
| 43 | <defs> | ||
| 44 | <path id="md9204da613" d="M 0 0 | ||
| 45 | L 0 3.5 | ||
| 46 | " style="stroke: #000000; stroke-width: 0.8"/> | ||
| 47 | </defs> | ||
| 48 | <g> | ||
| 49 | <use xlink:href="#md9204da613" x="94.770241" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 50 | </g> | ||
| 51 | </g> | ||
| 52 | <g id="text_1"> | ||
| 53 | <!-- 1KB --> | ||
| 54 | <g transform="translate(84.879616 271.698438)scale(0.1 -0.1)"> | ||
| 55 | <defs> | ||
| 56 | <path id="DejaVuSans-31" d="M 794 531 | ||
| 57 | L 1825 531 | ||
| 58 | L 1825 4091 | ||
| 59 | L 703 3866 | ||
| 60 | L 703 4441 | ||
| 61 | L 1819 4666 | ||
| 62 | L 2450 4666 | ||
| 63 | L 2450 531 | ||
| 64 | L 3481 531 | ||
| 65 | L 3481 0 | ||
| 66 | L 794 0 | ||
| 67 | L 794 531 | ||
| 68 | z | ||
| 69 | " transform="scale(0.015625)"/> | ||
| 70 | <path id="DejaVuSans-4b" d="M 628 4666 | ||
| 71 | L 1259 4666 | ||
| 72 | L 1259 2694 | ||
| 73 | L 3353 4666 | ||
| 74 | L 4166 4666 | ||
| 75 | L 1850 2491 | ||
| 76 | L 4331 0 | ||
| 77 | L 3500 0 | ||
| 78 | L 1259 2247 | ||
| 79 | L 1259 0 | ||
| 80 | L 628 0 | ||
| 81 | L 628 4666 | ||
| 82 | z | ||
| 83 | " transform="scale(0.015625)"/> | ||
| 84 | <path id="DejaVuSans-42" d="M 1259 2228 | ||
| 85 | L 1259 519 | ||
| 86 | L 2272 519 | ||
| 87 | Q 2781 519 3026 730 | ||
| 88 | Q 3272 941 3272 1375 | ||
| 89 | Q 3272 1813 3026 2020 | ||
| 90 | Q 2781 2228 2272 2228 | ||
| 91 | L 1259 2228 | ||
| 92 | z | ||
| 93 | M 1259 4147 | ||
| 94 | L 1259 2741 | ||
| 95 | L 2194 2741 | ||
| 96 | Q 2656 2741 2882 2914 | ||
| 97 | Q 3109 3088 3109 3444 | ||
| 98 | Q 3109 3797 2882 3972 | ||
| 99 | Q 2656 4147 2194 4147 | ||
| 100 | L 1259 4147 | ||
| 101 | z | ||
| 102 | M 628 4666 | ||
| 103 | L 2241 4666 | ||
| 104 | Q 2963 4666 3353 4366 | ||
| 105 | Q 3744 4066 3744 3513 | ||
| 106 | Q 3744 3084 3544 2831 | ||
| 107 | Q 3344 2578 2956 2516 | ||
| 108 | Q 3422 2416 3680 2098 | ||
| 109 | Q 3938 1781 3938 1306 | ||
| 110 | Q 3938 681 3513 340 | ||
| 111 | Q 3088 0 2303 0 | ||
| 112 | L 628 0 | ||
| 113 | L 628 4666 | ||
| 114 | z | ||
| 115 | " transform="scale(0.015625)"/> | ||
| 116 | </defs> | ||
| 117 | <use xlink:href="#DejaVuSans-31"/> | ||
| 118 | <use xlink:href="#DejaVuSans-4b" x="63.623047"/> | ||
| 119 | <use xlink:href="#DejaVuSans-42" x="129.199219"/> | ||
| 120 | </g> | ||
| 121 | </g> | ||
| 122 | </g> | ||
| 123 | <g id="xtick_2"> | ||
| 124 | <g id="line2d_2"> | ||
| 125 | <g> | ||
| 126 | <use xlink:href="#md9204da613" x="205.538707" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 127 | </g> | ||
| 128 | </g> | ||
| 129 | <g id="text_2"> | ||
| 130 | <!-- 10KB --> | ||
| 131 | <g transform="translate(192.466832 271.698438)scale(0.1 -0.1)"> | ||
| 132 | <defs> | ||
| 133 | <path id="DejaVuSans-30" d="M 2034 4250 | ||
| 134 | Q 1547 4250 1301 3770 | ||
| 135 | Q 1056 3291 1056 2328 | ||
| 136 | Q 1056 1369 1301 889 | ||
| 137 | Q 1547 409 2034 409 | ||
| 138 | Q 2525 409 2770 889 | ||
| 139 | Q 3016 1369 3016 2328 | ||
| 140 | Q 3016 3291 2770 3770 | ||
| 141 | Q 2525 4250 2034 4250 | ||
| 142 | z | ||
| 143 | M 2034 4750 | ||
| 144 | Q 2819 4750 3233 4129 | ||
| 145 | Q 3647 3509 3647 2328 | ||
| 146 | Q 3647 1150 3233 529 | ||
| 147 | Q 2819 -91 2034 -91 | ||
| 148 | Q 1250 -91 836 529 | ||
| 149 | Q 422 1150 422 2328 | ||
| 150 | Q 422 3509 836 4129 | ||
| 151 | Q 1250 4750 2034 4750 | ||
| 152 | z | ||
| 153 | " transform="scale(0.015625)"/> | ||
| 154 | </defs> | ||
| 155 | <use xlink:href="#DejaVuSans-31"/> | ||
| 156 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 157 | <use xlink:href="#DejaVuSans-4b" x="127.246094"/> | ||
| 158 | <use xlink:href="#DejaVuSans-42" x="192.822266"/> | ||
| 159 | </g> | ||
| 160 | </g> | ||
| 161 | </g> | ||
| 162 | <g id="xtick_3"> | ||
| 163 | <g id="line2d_3"> | ||
| 164 | <g> | ||
| 165 | <use xlink:href="#md9204da613" x="316.307173" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 166 | </g> | ||
| 167 | </g> | ||
| 168 | <g id="text_3"> | ||
| 169 | <!-- 100KB --> | ||
| 170 | <g transform="translate(300.054048 271.698438)scale(0.1 -0.1)"> | ||
| 171 | <use xlink:href="#DejaVuSans-31"/> | ||
| 172 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 173 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 174 | <use xlink:href="#DejaVuSans-4b" x="190.869141"/> | ||
| 175 | <use xlink:href="#DejaVuSans-42" x="256.445312"/> | ||
| 176 | </g> | ||
| 177 | </g> | ||
| 178 | </g> | ||
| 179 | <g id="xtick_4"> | ||
| 180 | <g id="line2d_4"> | ||
| 181 | <g> | ||
| 182 | <use xlink:href="#md9204da613" x="427.075639" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 183 | </g> | ||
| 184 | </g> | ||
| 185 | <g id="text_4"> | ||
| 186 | <!-- 1MB --> | ||
| 187 | <g transform="translate(416.149858 271.698438)scale(0.1 -0.1)"> | ||
| 188 | <defs> | ||
| 189 | <path id="DejaVuSans-4d" d="M 628 4666 | ||
| 190 | L 1569 4666 | ||
| 191 | L 2759 1491 | ||
| 192 | L 3956 4666 | ||
| 193 | L 4897 4666 | ||
| 194 | L 4897 0 | ||
| 195 | L 4281 0 | ||
| 196 | L 4281 4097 | ||
| 197 | L 3078 897 | ||
| 198 | L 2444 897 | ||
| 199 | L 1241 4097 | ||
| 200 | L 1241 0 | ||
| 201 | L 628 0 | ||
| 202 | L 628 4666 | ||
| 203 | z | ||
| 204 | " transform="scale(0.015625)"/> | ||
| 205 | </defs> | ||
| 206 | <use xlink:href="#DejaVuSans-31"/> | ||
| 207 | <use xlink:href="#DejaVuSans-4d" x="63.623047"/> | ||
| 208 | <use xlink:href="#DejaVuSans-42" x="149.902344"/> | ||
| 209 | </g> | ||
| 210 | </g> | ||
| 211 | </g> | ||
| 212 | <g id="xtick_5"> | ||
| 213 | <g id="line2d_5"> | ||
| 214 | <g> | ||
| 215 | <use xlink:href="#md9204da613" x="537.844105" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 216 | </g> | ||
| 217 | </g> | ||
| 218 | <g id="text_5"> | ||
| 219 | <!-- 10MB --> | ||
| 220 | <g transform="translate(523.737074 271.698438)scale(0.1 -0.1)"> | ||
| 221 | <use xlink:href="#DejaVuSans-31"/> | ||
| 222 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 223 | <use xlink:href="#DejaVuSans-4d" x="127.246094"/> | ||
| 224 | <use xlink:href="#DejaVuSans-42" x="213.525391"/> | ||
| 225 | </g> | ||
| 226 | </g> | ||
| 227 | </g> | ||
| 228 | <g id="xtick_6"> | ||
| 229 | <g id="line2d_6"> | ||
| 230 | <g> | ||
| 231 | <use xlink:href="#md9204da613" x="648.612571" y="257.1" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 232 | </g> | ||
| 233 | </g> | ||
| 234 | <g id="text_6"> | ||
| 235 | <!-- 100MB --> | ||
| 236 | <g transform="translate(631.32429 271.698438)scale(0.1 -0.1)"> | ||
| 237 | <use xlink:href="#DejaVuSans-31"/> | ||
| 238 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 239 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 240 | <use xlink:href="#DejaVuSans-4d" x="190.869141"/> | ||
| 241 | <use xlink:href="#DejaVuSans-42" x="277.148438"/> | ||
| 242 | </g> | ||
| 243 | </g> | ||
| 244 | </g> | ||
| 245 | <g id="text_7"> | ||
| 246 | <!-- Size of an input file --> | ||
| 247 | <g transform="translate(323.542969 285.376562)scale(0.1 -0.1)"> | ||
| 248 | <defs> | ||
| 249 | <path id="DejaVuSans-Oblique-53" d="M 3859 4513 | ||
| 250 | L 3738 3897 | ||
| 251 | Q 3422 4066 3111 4152 | ||
| 252 | Q 2800 4238 2509 4238 | ||
| 253 | Q 1944 4238 1609 3991 | ||
| 254 | Q 1275 3744 1275 3334 | ||
| 255 | Q 1275 3109 1398 2989 | ||
| 256 | Q 1522 2869 2034 2731 | ||
| 257 | L 2413 2638 | ||
| 258 | Q 3053 2472 3303 2217 | ||
| 259 | Q 3553 1963 3553 1503 | ||
| 260 | Q 3553 797 2998 353 | ||
| 261 | Q 2444 -91 1538 -91 | ||
| 262 | Q 1166 -91 791 -17 | ||
| 263 | Q 416 56 38 206 | ||
| 264 | L 166 856 | ||
| 265 | Q 513 641 861 531 | ||
| 266 | Q 1209 422 1556 422 | ||
| 267 | Q 2147 422 2503 684 | ||
| 268 | Q 2859 947 2859 1369 | ||
| 269 | Q 2859 1650 2717 1795 | ||
| 270 | Q 2575 1941 2106 2059 | ||
| 271 | L 1728 2156 | ||
| 272 | Q 1081 2325 845 2545 | ||
| 273 | Q 609 2766 609 3163 | ||
| 274 | Q 609 3859 1145 4304 | ||
| 275 | Q 1681 4750 2541 4750 | ||
| 276 | Q 2875 4750 3203 4690 | ||
| 277 | Q 3531 4631 3859 4513 | ||
| 278 | z | ||
| 279 | " transform="scale(0.015625)"/> | ||
| 280 | <path id="DejaVuSans-Oblique-69" d="M 1172 4863 | ||
| 281 | L 1747 4863 | ||
| 282 | L 1606 4134 | ||
| 283 | L 1031 4134 | ||
| 284 | L 1172 4863 | ||
| 285 | z | ||
| 286 | M 909 3500 | ||
| 287 | L 1484 3500 | ||
| 288 | L 800 0 | ||
| 289 | L 225 0 | ||
| 290 | L 909 3500 | ||
| 291 | z | ||
| 292 | " transform="scale(0.015625)"/> | ||
| 293 | <path id="DejaVuSans-Oblique-7a" d="M 744 3500 | ||
| 294 | L 3475 3500 | ||
| 295 | L 3372 2975 | ||
| 296 | L 738 459 | ||
| 297 | L 2913 459 | ||
| 298 | L 2822 0 | ||
| 299 | L -19 0 | ||
| 300 | L 84 525 | ||
| 301 | L 2719 3041 | ||
| 302 | L 653 3041 | ||
| 303 | L 744 3500 | ||
| 304 | z | ||
| 305 | " transform="scale(0.015625)"/> | ||
| 306 | <path id="DejaVuSans-Oblique-65" d="M 3078 2063 | ||
| 307 | Q 3088 2113 3092 2166 | ||
| 308 | Q 3097 2219 3097 2272 | ||
| 309 | Q 3097 2653 2873 2875 | ||
| 310 | Q 2650 3097 2266 3097 | ||
| 311 | Q 1838 3097 1509 2826 | ||
| 312 | Q 1181 2556 1013 2059 | ||
| 313 | L 3078 2063 | ||
| 314 | z | ||
| 315 | M 3578 1613 | ||
| 316 | L 903 1613 | ||
| 317 | Q 884 1494 878 1425 | ||
| 318 | Q 872 1356 872 1306 | ||
| 319 | Q 872 872 1139 634 | ||
| 320 | Q 1406 397 1894 397 | ||
| 321 | Q 2269 397 2603 481 | ||
| 322 | Q 2938 566 3225 728 | ||
| 323 | L 3116 159 | ||
| 324 | Q 2806 34 2476 -28 | ||
| 325 | Q 2147 -91 1806 -91 | ||
| 326 | Q 1078 -91 686 257 | ||
| 327 | Q 294 606 294 1247 | ||
| 328 | Q 294 1794 489 2264 | ||
| 329 | Q 684 2734 1063 3103 | ||
| 330 | Q 1306 3334 1642 3459 | ||
| 331 | Q 1978 3584 2356 3584 | ||
| 332 | Q 2950 3584 3301 3228 | ||
| 333 | Q 3653 2872 3653 2272 | ||
| 334 | Q 3653 2128 3634 1964 | ||
| 335 | Q 3616 1800 3578 1613 | ||
| 336 | z | ||
| 337 | " transform="scale(0.015625)"/> | ||
| 338 | <path id="DejaVuSans-Oblique-20" transform="scale(0.015625)"/> | ||
| 339 | <path id="DejaVuSans-Oblique-6f" d="M 1625 -91 | ||
| 340 | Q 1009 -91 651 289 | ||
| 341 | Q 294 669 294 1325 | ||
| 342 | Q 294 1706 417 2101 | ||
| 343 | Q 541 2497 738 2766 | ||
| 344 | Q 1047 3184 1428 3384 | ||
| 345 | Q 1809 3584 2291 3584 | ||
| 346 | Q 2888 3584 3255 3212 | ||
| 347 | Q 3622 2841 3622 2241 | ||
| 348 | Q 3622 1825 3500 1412 | ||
| 349 | Q 3378 1000 3181 728 | ||
| 350 | Q 2875 309 2494 109 | ||
| 351 | Q 2113 -91 1625 -91 | ||
| 352 | z | ||
| 353 | M 891 1344 | ||
| 354 | Q 891 869 1089 633 | ||
| 355 | Q 1288 397 1691 397 | ||
| 356 | Q 2269 397 2648 901 | ||
| 357 | Q 3028 1406 3028 2181 | ||
| 358 | Q 3028 2634 2825 2865 | ||
| 359 | Q 2622 3097 2228 3097 | ||
| 360 | Q 1903 3097 1650 2945 | ||
| 361 | Q 1397 2794 1197 2484 | ||
| 362 | Q 1050 2253 970 1956 | ||
| 363 | Q 891 1659 891 1344 | ||
| 364 | z | ||
| 365 | " transform="scale(0.015625)"/> | ||
| 366 | <path id="DejaVuSans-Oblique-66" d="M 3059 4863 | ||
| 367 | L 2969 4384 | ||
| 368 | L 2419 4384 | ||
| 369 | Q 2106 4384 1964 4261 | ||
| 370 | Q 1822 4138 1753 3809 | ||
| 371 | L 1691 3500 | ||
| 372 | L 2638 3500 | ||
| 373 | L 2553 3053 | ||
| 374 | L 1606 3053 | ||
| 375 | L 1013 0 | ||
| 376 | L 434 0 | ||
| 377 | L 1031 3053 | ||
| 378 | L 481 3053 | ||
| 379 | L 563 3500 | ||
| 380 | L 1113 3500 | ||
| 381 | L 1159 3744 | ||
| 382 | Q 1278 4363 1576 4613 | ||
| 383 | Q 1875 4863 2516 4863 | ||
| 384 | L 3059 4863 | ||
| 385 | z | ||
| 386 | " transform="scale(0.015625)"/> | ||
| 387 | <path id="DejaVuSans-Oblique-61" d="M 3438 1997 | ||
| 388 | L 3047 0 | ||
| 389 | L 2472 0 | ||
| 390 | L 2578 531 | ||
| 391 | Q 2325 219 2001 64 | ||
| 392 | Q 1678 -91 1281 -91 | ||
| 393 | Q 834 -91 548 182 | ||
| 394 | Q 263 456 263 884 | ||
| 395 | Q 263 1497 752 1853 | ||
| 396 | Q 1241 2209 2100 2209 | ||
| 397 | L 2900 2209 | ||
| 398 | L 2931 2363 | ||
| 399 | Q 2938 2388 2941 2417 | ||
| 400 | Q 2944 2447 2944 2509 | ||
| 401 | Q 2944 2788 2717 2942 | ||
| 402 | Q 2491 3097 2081 3097 | ||
| 403 | Q 1800 3097 1504 3025 | ||
| 404 | Q 1209 2953 897 2809 | ||
| 405 | L 997 3341 | ||
| 406 | Q 1322 3463 1633 3523 | ||
| 407 | Q 1944 3584 2234 3584 | ||
| 408 | Q 2853 3584 3176 3315 | ||
| 409 | Q 3500 3047 3500 2534 | ||
| 410 | Q 3500 2431 3484 2292 | ||
| 411 | Q 3469 2153 3438 1997 | ||
| 412 | z | ||
| 413 | M 2816 1759 | ||
| 414 | L 2241 1759 | ||
| 415 | Q 1534 1759 1195 1570 | ||
| 416 | Q 856 1381 856 984 | ||
| 417 | Q 856 709 1029 553 | ||
| 418 | Q 1203 397 1509 397 | ||
| 419 | Q 1978 397 2328 733 | ||
| 420 | Q 2678 1069 2791 1631 | ||
| 421 | L 2816 1759 | ||
| 422 | z | ||
| 423 | " transform="scale(0.015625)"/> | ||
| 424 | <path id="DejaVuSans-Oblique-6e" d="M 3566 2113 | ||
| 425 | L 3156 0 | ||
| 426 | L 2578 0 | ||
| 427 | L 2988 2091 | ||
| 428 | Q 3016 2238 3031 2350 | ||
| 429 | Q 3047 2463 3047 2528 | ||
| 430 | Q 3047 2791 2881 2937 | ||
| 431 | Q 2716 3084 2419 3084 | ||
| 432 | Q 1956 3084 1622 2776 | ||
| 433 | Q 1288 2469 1184 1941 | ||
| 434 | L 800 0 | ||
| 435 | L 225 0 | ||
| 436 | L 903 3500 | ||
| 437 | L 1478 3500 | ||
| 438 | L 1363 2950 | ||
| 439 | Q 1603 3253 1940 3418 | ||
| 440 | Q 2278 3584 2650 3584 | ||
| 441 | Q 3113 3584 3367 3334 | ||
| 442 | Q 3622 3084 3622 2631 | ||
| 443 | Q 3622 2519 3608 2391 | ||
| 444 | Q 3594 2263 3566 2113 | ||
| 445 | z | ||
| 446 | " transform="scale(0.015625)"/> | ||
| 447 | <path id="DejaVuSans-Oblique-70" d="M 3175 2156 | ||
| 448 | Q 3175 2616 2975 2859 | ||
| 449 | Q 2775 3103 2400 3103 | ||
| 450 | Q 2144 3103 1911 2972 | ||
| 451 | Q 1678 2841 1497 2591 | ||
| 452 | Q 1319 2344 1212 1994 | ||
| 453 | Q 1106 1644 1106 1300 | ||
| 454 | Q 1106 863 1306 627 | ||
| 455 | Q 1506 391 1875 391 | ||
| 456 | Q 2147 391 2380 519 | ||
| 457 | Q 2613 647 2778 891 | ||
| 458 | Q 2956 1147 3065 1494 | ||
| 459 | Q 3175 1841 3175 2156 | ||
| 460 | z | ||
| 461 | M 1394 2969 | ||
| 462 | Q 1625 3272 1939 3428 | ||
| 463 | Q 2253 3584 2638 3584 | ||
| 464 | Q 3175 3584 3472 3232 | ||
| 465 | Q 3769 2881 3769 2247 | ||
| 466 | Q 3769 1728 3584 1258 | ||
| 467 | Q 3400 788 3053 416 | ||
| 468 | Q 2822 169 2531 39 | ||
| 469 | Q 2241 -91 1919 -91 | ||
| 470 | Q 1547 -91 1294 64 | ||
| 471 | Q 1041 219 916 525 | ||
| 472 | L 556 -1331 | ||
| 473 | L -19 -1331 | ||
| 474 | L 922 3500 | ||
| 475 | L 1497 3500 | ||
| 476 | L 1394 2969 | ||
| 477 | z | ||
| 478 | " transform="scale(0.015625)"/> | ||
| 479 | <path id="DejaVuSans-Oblique-75" d="M 428 1388 | ||
| 480 | L 838 3500 | ||
| 481 | L 1416 3500 | ||
| 482 | L 1006 1409 | ||
| 483 | Q 975 1256 961 1147 | ||
| 484 | Q 947 1038 947 966 | ||
| 485 | Q 947 700 1109 554 | ||
| 486 | Q 1272 409 1569 409 | ||
| 487 | Q 2031 409 2368 721 | ||
| 488 | Q 2706 1034 2809 1563 | ||
| 489 | L 3194 3500 | ||
| 490 | L 3769 3500 | ||
| 491 | L 3091 0 | ||
| 492 | L 2516 0 | ||
| 493 | L 2631 550 | ||
| 494 | Q 2388 244 2052 76 | ||
| 495 | Q 1716 -91 1338 -91 | ||
| 496 | Q 878 -91 622 161 | ||
| 497 | Q 366 413 366 863 | ||
| 498 | Q 366 956 381 1097 | ||
| 499 | Q 397 1238 428 1388 | ||
| 500 | z | ||
| 501 | " transform="scale(0.015625)"/> | ||
| 502 | <path id="DejaVuSans-Oblique-74" d="M 2706 3500 | ||
| 503 | L 2619 3053 | ||
| 504 | L 1472 3053 | ||
| 505 | L 1100 1153 | ||
| 506 | Q 1081 1047 1072 975 | ||
| 507 | Q 1063 903 1063 863 | ||
| 508 | Q 1063 663 1183 572 | ||
| 509 | Q 1303 481 1569 481 | ||
| 510 | L 2150 481 | ||
| 511 | L 2053 0 | ||
| 512 | L 1503 0 | ||
| 513 | Q 991 0 739 200 | ||
| 514 | Q 488 400 488 806 | ||
| 515 | Q 488 878 497 964 | ||
| 516 | Q 506 1050 525 1153 | ||
| 517 | L 897 3053 | ||
| 518 | L 409 3053 | ||
| 519 | L 500 3500 | ||
| 520 | L 978 3500 | ||
| 521 | L 1172 4494 | ||
| 522 | L 1747 4494 | ||
| 523 | L 1556 3500 | ||
| 524 | L 2706 3500 | ||
| 525 | z | ||
| 526 | " transform="scale(0.015625)"/> | ||
| 527 | <path id="DejaVuSans-Oblique-6c" d="M 1172 4863 | ||
| 528 | L 1747 4863 | ||
| 529 | L 800 0 | ||
| 530 | L 225 0 | ||
| 531 | L 1172 4863 | ||
| 532 | z | ||
| 533 | " transform="scale(0.015625)"/> | ||
| 534 | </defs> | ||
| 535 | <use xlink:href="#DejaVuSans-Oblique-53"/> | ||
| 536 | <use xlink:href="#DejaVuSans-Oblique-69" x="63.476562"/> | ||
| 537 | <use xlink:href="#DejaVuSans-Oblique-7a" x="91.259766"/> | ||
| 538 | <use xlink:href="#DejaVuSans-Oblique-65" x="143.75"/> | ||
| 539 | <use xlink:href="#DejaVuSans-Oblique-20" x="205.273438"/> | ||
| 540 | <use xlink:href="#DejaVuSans-Oblique-6f" x="237.060547"/> | ||
| 541 | <use xlink:href="#DejaVuSans-Oblique-66" x="298.242188"/> | ||
| 542 | <use xlink:href="#DejaVuSans-Oblique-20" x="333.447266"/> | ||
| 543 | <use xlink:href="#DejaVuSans-Oblique-61" x="365.234375"/> | ||
| 544 | <use xlink:href="#DejaVuSans-Oblique-6e" x="426.513672"/> | ||
| 545 | <use xlink:href="#DejaVuSans-Oblique-20" x="489.892578"/> | ||
| 546 | <use xlink:href="#DejaVuSans-Oblique-69" x="521.679688"/> | ||
| 547 | <use xlink:href="#DejaVuSans-Oblique-6e" x="549.462891"/> | ||
| 548 | <use xlink:href="#DejaVuSans-Oblique-70" x="612.841797"/> | ||
| 549 | <use xlink:href="#DejaVuSans-Oblique-75" x="676.318359"/> | ||
| 550 | <use xlink:href="#DejaVuSans-Oblique-74" x="739.697266"/> | ||
| 551 | <use xlink:href="#DejaVuSans-Oblique-20" x="778.90625"/> | ||
| 552 | <use xlink:href="#DejaVuSans-Oblique-66" x="810.693359"/> | ||
| 553 | <use xlink:href="#DejaVuSans-Oblique-69" x="845.898438"/> | ||
| 554 | <use xlink:href="#DejaVuSans-Oblique-6c" x="873.681641"/> | ||
| 555 | <use xlink:href="#DejaVuSans-Oblique-65" x="901.464844"/> | ||
| 556 | </g> | ||
| 557 | </g> | ||
| 558 | </g> | ||
| 559 | <g id="matplotlib.axis_2"> | ||
| 560 | <g id="ytick_1"> | ||
| 561 | <g id="line2d_7"> | ||
| 562 | <defs> | ||
| 563 | <path id="mc301ada271" d="M 0 0 | ||
| 564 | L -3.5 0 | ||
| 565 | " style="stroke: #000000; stroke-width: 0.8"/> | ||
| 566 | </defs> | ||
| 567 | <g> | ||
| 568 | <use xlink:href="#mc301ada271" x="67.078125" y="246.739405" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 569 | </g> | ||
| 570 | </g> | ||
| 571 | <g id="text_8"> | ||
| 572 | <!-- 0 --> | ||
| 573 | <g transform="translate(53.715625 250.538624)scale(0.1 -0.1)"> | ||
| 574 | <use xlink:href="#DejaVuSans-30"/> | ||
| 575 | </g> | ||
| 576 | </g> | ||
| 577 | </g> | ||
| 578 | <g id="ytick_2"> | ||
| 579 | <g id="line2d_8"> | ||
| 580 | <g> | ||
| 581 | <use xlink:href="#mc301ada271" x="67.078125" y="198.216035" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 582 | </g> | ||
| 583 | </g> | ||
| 584 | <g id="text_9"> | ||
| 585 | <!-- 20000 --> | ||
| 586 | <g transform="translate(28.265625 202.015253)scale(0.1 -0.1)"> | ||
| 587 | <defs> | ||
| 588 | <path id="DejaVuSans-32" d="M 1228 531 | ||
| 589 | L 3431 531 | ||
| 590 | L 3431 0 | ||
| 591 | L 469 0 | ||
| 592 | L 469 531 | ||
| 593 | Q 828 903 1448 1529 | ||
| 594 | Q 2069 2156 2228 2338 | ||
| 595 | Q 2531 2678 2651 2914 | ||
| 596 | Q 2772 3150 2772 3378 | ||
| 597 | Q 2772 3750 2511 3984 | ||
| 598 | Q 2250 4219 1831 4219 | ||
| 599 | Q 1534 4219 1204 4116 | ||
| 600 | Q 875 4013 500 3803 | ||
| 601 | L 500 4441 | ||
| 602 | Q 881 4594 1212 4672 | ||
| 603 | Q 1544 4750 1819 4750 | ||
| 604 | Q 2544 4750 2975 4387 | ||
| 605 | Q 3406 4025 3406 3419 | ||
| 606 | Q 3406 3131 3298 2873 | ||
| 607 | Q 3191 2616 2906 2266 | ||
| 608 | Q 2828 2175 2409 1742 | ||
| 609 | Q 1991 1309 1228 531 | ||
| 610 | z | ||
| 611 | " transform="scale(0.015625)"/> | ||
| 612 | </defs> | ||
| 613 | <use xlink:href="#DejaVuSans-32"/> | ||
| 614 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 615 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 616 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 617 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 618 | </g> | ||
| 619 | </g> | ||
| 620 | </g> | ||
| 621 | <g id="ytick_3"> | ||
| 622 | <g id="line2d_9"> | ||
| 623 | <g> | ||
| 624 | <use xlink:href="#mc301ada271" x="67.078125" y="149.692664" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 625 | </g> | ||
| 626 | </g> | ||
| 627 | <g id="text_10"> | ||
| 628 | <!-- 40000 --> | ||
| 629 | <g transform="translate(28.265625 153.491883)scale(0.1 -0.1)"> | ||
| 630 | <defs> | ||
| 631 | <path id="DejaVuSans-34" d="M 2419 4116 | ||
| 632 | L 825 1625 | ||
| 633 | L 2419 1625 | ||
| 634 | L 2419 4116 | ||
| 635 | z | ||
| 636 | M 2253 4666 | ||
| 637 | L 3047 4666 | ||
| 638 | L 3047 1625 | ||
| 639 | L 3713 1625 | ||
| 640 | L 3713 1100 | ||
| 641 | L 3047 1100 | ||
| 642 | L 3047 0 | ||
| 643 | L 2419 0 | ||
| 644 | L 2419 1100 | ||
| 645 | L 313 1100 | ||
| 646 | L 313 1709 | ||
| 647 | L 2253 4666 | ||
| 648 | z | ||
| 649 | " transform="scale(0.015625)"/> | ||
| 650 | </defs> | ||
| 651 | <use xlink:href="#DejaVuSans-34"/> | ||
| 652 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 653 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 654 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 655 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 656 | </g> | ||
| 657 | </g> | ||
| 658 | </g> | ||
| 659 | <g id="ytick_4"> | ||
| 660 | <g id="line2d_10"> | ||
| 661 | <g> | ||
| 662 | <use xlink:href="#mc301ada271" x="67.078125" y="101.169293" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 663 | </g> | ||
| 664 | </g> | ||
| 665 | <g id="text_11"> | ||
| 666 | <!-- 60000 --> | ||
| 667 | <g transform="translate(28.265625 104.968512)scale(0.1 -0.1)"> | ||
| 668 | <defs> | ||
| 669 | <path id="DejaVuSans-36" d="M 2113 2584 | ||
| 670 | Q 1688 2584 1439 2293 | ||
| 671 | Q 1191 2003 1191 1497 | ||
| 672 | Q 1191 994 1439 701 | ||
| 673 | Q 1688 409 2113 409 | ||
| 674 | Q 2538 409 2786 701 | ||
| 675 | Q 3034 994 3034 1497 | ||
| 676 | Q 3034 2003 2786 2293 | ||
| 677 | Q 2538 2584 2113 2584 | ||
| 678 | z | ||
| 679 | M 3366 4563 | ||
| 680 | L 3366 3988 | ||
| 681 | Q 3128 4100 2886 4159 | ||
| 682 | Q 2644 4219 2406 4219 | ||
| 683 | Q 1781 4219 1451 3797 | ||
| 684 | Q 1122 3375 1075 2522 | ||
| 685 | Q 1259 2794 1537 2939 | ||
| 686 | Q 1816 3084 2150 3084 | ||
| 687 | Q 2853 3084 3261 2657 | ||
| 688 | Q 3669 2231 3669 1497 | ||
| 689 | Q 3669 778 3244 343 | ||
| 690 | Q 2819 -91 2113 -91 | ||
| 691 | Q 1303 -91 875 529 | ||
| 692 | Q 447 1150 447 2328 | ||
| 693 | Q 447 3434 972 4092 | ||
| 694 | Q 1497 4750 2381 4750 | ||
| 695 | Q 2619 4750 2861 4703 | ||
| 696 | Q 3103 4656 3366 4563 | ||
| 697 | z | ||
| 698 | " transform="scale(0.015625)"/> | ||
| 699 | </defs> | ||
| 700 | <use xlink:href="#DejaVuSans-36"/> | ||
| 701 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 702 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 703 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 704 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 705 | </g> | ||
| 706 | </g> | ||
| 707 | </g> | ||
| 708 | <g id="ytick_5"> | ||
| 709 | <g id="line2d_11"> | ||
| 710 | <g> | ||
| 711 | <use xlink:href="#mc301ada271" x="67.078125" y="52.645923" style="stroke: #000000; stroke-width: 0.8"/> | ||
| 712 | </g> | ||
| 713 | </g> | ||
| 714 | <g id="text_12"> | ||
| 715 | <!-- 80000 --> | ||
| 716 | <g transform="translate(28.265625 56.445141)scale(0.1 -0.1)"> | ||
| 717 | <defs> | ||
| 718 | <path id="DejaVuSans-38" d="M 2034 2216 | ||
| 719 | Q 1584 2216 1326 1975 | ||
| 720 | Q 1069 1734 1069 1313 | ||
| 721 | Q 1069 891 1326 650 | ||
| 722 | Q 1584 409 2034 409 | ||
| 723 | Q 2484 409 2743 651 | ||
| 724 | Q 3003 894 3003 1313 | ||
| 725 | Q 3003 1734 2745 1975 | ||
| 726 | Q 2488 2216 2034 2216 | ||
| 727 | z | ||
| 728 | M 1403 2484 | ||
| 729 | Q 997 2584 770 2862 | ||
| 730 | Q 544 3141 544 3541 | ||
| 731 | Q 544 4100 942 4425 | ||
| 732 | Q 1341 4750 2034 4750 | ||
| 733 | Q 2731 4750 3128 4425 | ||
| 734 | Q 3525 4100 3525 3541 | ||
| 735 | Q 3525 3141 3298 2862 | ||
| 736 | Q 3072 2584 2669 2484 | ||
| 737 | Q 3125 2378 3379 2068 | ||
| 738 | Q 3634 1759 3634 1313 | ||
| 739 | Q 3634 634 3220 271 | ||
| 740 | Q 2806 -91 2034 -91 | ||
| 741 | Q 1263 -91 848 271 | ||
| 742 | Q 434 634 434 1313 | ||
| 743 | Q 434 1759 690 2068 | ||
| 744 | Q 947 2378 1403 2484 | ||
| 745 | z | ||
| 746 | M 1172 3481 | ||
| 747 | Q 1172 3119 1398 2916 | ||
| 748 | Q 1625 2713 2034 2713 | ||
| 749 | Q 2441 2713 2670 2916 | ||
| 750 | Q 2900 3119 2900 3481 | ||
| 751 | Q 2900 3844 2670 4047 | ||
| 752 | Q 2441 4250 2034 4250 | ||
| 753 | Q 1625 4250 1398 4047 | ||
| 754 | Q 1172 3844 1172 3481 | ||
| 755 | z | ||
| 756 | " transform="scale(0.015625)"/> | ||
| 757 | </defs> | ||
| 758 | <use xlink:href="#DejaVuSans-38"/> | ||
| 759 | <use xlink:href="#DejaVuSans-30" x="63.623047"/> | ||
| 760 | <use xlink:href="#DejaVuSans-30" x="127.246094"/> | ||
| 761 | <use xlink:href="#DejaVuSans-30" x="190.869141"/> | ||
| 762 | <use xlink:href="#DejaVuSans-30" x="254.492188"/> | ||
| 763 | </g> | ||
| 764 | </g> | ||
| 765 | </g> | ||
| 766 | <g id="text_13"> | ||
| 767 | <!-- Encoding time (ms) --> | ||
| 768 | <g transform="translate(22.185937 191.877083)rotate(-90)scale(0.1 -0.1)"> | ||
| 769 | <defs> | ||
| 770 | <path id="DejaVuSans-Oblique-45" d="M 1081 4666 | ||
| 771 | L 4031 4666 | ||
| 772 | L 3928 4134 | ||
| 773 | L 1606 4134 | ||
| 774 | L 1338 2753 | ||
| 775 | L 3566 2753 | ||
| 776 | L 3463 2222 | ||
| 777 | L 1234 2222 | ||
| 778 | L 909 531 | ||
| 779 | L 3284 531 | ||
| 780 | L 3181 0 | ||
| 781 | L 172 0 | ||
| 782 | L 1081 4666 | ||
| 783 | z | ||
| 784 | " transform="scale(0.015625)"/> | ||
| 785 | <path id="DejaVuSans-Oblique-63" d="M 3431 3366 | ||
| 786 | L 3316 2797 | ||
| 787 | Q 3109 2947 2876 3022 | ||
| 788 | Q 2644 3097 2394 3097 | ||
| 789 | Q 2119 3097 1870 3000 | ||
| 790 | Q 1622 2903 1453 2725 | ||
| 791 | Q 1184 2453 1037 2087 | ||
| 792 | Q 891 1722 891 1331 | ||
| 793 | Q 891 859 1127 628 | ||
| 794 | Q 1363 397 1844 397 | ||
| 795 | Q 2081 397 2348 469 | ||
| 796 | Q 2616 541 2906 684 | ||
| 797 | L 2797 116 | ||
| 798 | Q 2547 13 2283 -39 | ||
| 799 | Q 2019 -91 1741 -91 | ||
| 800 | Q 1044 -91 669 257 | ||
| 801 | Q 294 606 294 1253 | ||
| 802 | Q 294 1797 489 2255 | ||
| 803 | Q 684 2713 1069 3078 | ||
| 804 | Q 1331 3328 1684 3456 | ||
| 805 | Q 2038 3584 2456 3584 | ||
| 806 | Q 2700 3584 2940 3529 | ||
| 807 | Q 3181 3475 3431 3366 | ||
| 808 | z | ||
| 809 | " transform="scale(0.015625)"/> | ||
| 810 | <path id="DejaVuSans-Oblique-64" d="M 2675 525 | ||
| 811 | Q 2444 222 2128 65 | ||
| 812 | Q 1813 -91 1428 -91 | ||
| 813 | Q 903 -91 598 267 | ||
| 814 | Q 294 625 294 1247 | ||
| 815 | Q 294 1766 478 2236 | ||
| 816 | Q 663 2706 1013 3078 | ||
| 817 | Q 1244 3325 1534 3454 | ||
| 818 | Q 1825 3584 2144 3584 | ||
| 819 | Q 2481 3584 2739 3421 | ||
| 820 | Q 2997 3259 3138 2956 | ||
| 821 | L 3513 4863 | ||
| 822 | L 4091 4863 | ||
| 823 | L 3144 0 | ||
| 824 | L 2566 0 | ||
| 825 | L 2675 525 | ||
| 826 | z | ||
| 827 | M 891 1350 | ||
| 828 | Q 891 897 1095 644 | ||
| 829 | Q 1300 391 1663 391 | ||
| 830 | Q 1931 391 2161 520 | ||
| 831 | Q 2391 650 2566 903 | ||
| 832 | Q 2750 1166 2856 1509 | ||
| 833 | Q 2963 1853 2963 2188 | ||
| 834 | Q 2963 2622 2758 2865 | ||
| 835 | Q 2553 3109 2194 3109 | ||
| 836 | Q 1922 3109 1687 2981 | ||
| 837 | Q 1453 2853 1288 2613 | ||
| 838 | Q 1106 2353 998 2009 | ||
| 839 | Q 891 1666 891 1350 | ||
| 840 | z | ||
| 841 | " transform="scale(0.015625)"/> | ||
| 842 | <path id="DejaVuSans-Oblique-67" d="M 3816 3500 | ||
| 843 | L 3219 434 | ||
| 844 | Q 3047 -456 2561 -893 | ||
| 845 | Q 2075 -1331 1253 -1331 | ||
| 846 | Q 950 -1331 690 -1286 | ||
| 847 | Q 431 -1241 206 -1147 | ||
| 848 | L 313 -588 | ||
| 849 | Q 525 -725 762 -790 | ||
| 850 | Q 1000 -856 1269 -856 | ||
| 851 | Q 1816 -856 2167 -557 | ||
| 852 | Q 2519 -259 2631 300 | ||
| 853 | L 2681 563 | ||
| 854 | Q 2441 288 2122 144 | ||
| 855 | Q 1803 0 1434 0 | ||
| 856 | Q 903 0 598 351 | ||
| 857 | Q 294 703 294 1319 | ||
| 858 | Q 294 1803 478 2267 | ||
| 859 | Q 663 2731 997 3091 | ||
| 860 | Q 1219 3328 1514 3456 | ||
| 861 | Q 1809 3584 2131 3584 | ||
| 862 | Q 2484 3584 2746 3420 | ||
| 863 | Q 3009 3256 3138 2956 | ||
| 864 | L 3238 3500 | ||
| 865 | L 3816 3500 | ||
| 866 | z | ||
| 867 | M 2950 2216 | ||
| 868 | Q 2950 2641 2750 2872 | ||
| 869 | Q 2550 3103 2181 3103 | ||
| 870 | Q 1953 3103 1747 3012 | ||
| 871 | Q 1541 2922 1394 2759 | ||
| 872 | Q 1156 2491 1023 2127 | ||
| 873 | Q 891 1763 891 1375 | ||
| 874 | Q 891 944 1092 712 | ||
| 875 | Q 1294 481 1672 481 | ||
| 876 | Q 2219 481 2584 976 | ||
| 877 | Q 2950 1472 2950 2216 | ||
| 878 | z | ||
| 879 | " transform="scale(0.015625)"/> | ||
| 880 | <path id="DejaVuSans-Oblique-6d" d="M 5747 2113 | ||
| 881 | L 5338 0 | ||
| 882 | L 4763 0 | ||
| 883 | L 5166 2094 | ||
| 884 | Q 5191 2228 5203 2325 | ||
| 885 | Q 5216 2422 5216 2491 | ||
| 886 | Q 5216 2772 5059 2928 | ||
| 887 | Q 4903 3084 4622 3084 | ||
| 888 | Q 4203 3084 3875 2770 | ||
| 889 | Q 3547 2456 3450 1953 | ||
| 890 | L 3066 0 | ||
| 891 | L 2491 0 | ||
| 892 | L 2900 2094 | ||
| 893 | Q 2925 2209 2937 2307 | ||
| 894 | Q 2950 2406 2950 2484 | ||
| 895 | Q 2950 2769 2794 2926 | ||
| 896 | Q 2638 3084 2363 3084 | ||
| 897 | Q 1938 3084 1609 2770 | ||
| 898 | Q 1281 2456 1184 1953 | ||
| 899 | L 800 0 | ||
| 900 | L 225 0 | ||
| 901 | L 909 3500 | ||
| 902 | L 1484 3500 | ||
| 903 | L 1375 2956 | ||
| 904 | Q 1609 3263 1923 3423 | ||
| 905 | Q 2238 3584 2597 3584 | ||
| 906 | Q 2978 3584 3223 3384 | ||
| 907 | Q 3469 3184 3519 2828 | ||
| 908 | Q 3781 3197 4126 3390 | ||
| 909 | Q 4472 3584 4856 3584 | ||
| 910 | Q 5306 3584 5551 3325 | ||
| 911 | Q 5797 3066 5797 2591 | ||
| 912 | Q 5797 2488 5784 2364 | ||
| 913 | Q 5772 2241 5747 2113 | ||
| 914 | z | ||
| 915 | " transform="scale(0.015625)"/> | ||
| 916 | <path id="DejaVuSans-Oblique-28" d="M 2731 4856 | ||
| 917 | Q 1903 3822 1495 2892 | ||
| 918 | Q 1088 1963 1088 1100 | ||
| 919 | Q 1088 606 1206 120 | ||
| 920 | Q 1325 -366 1563 -844 | ||
| 921 | L 1063 -844 | ||
| 922 | Q 775 -306 634 201 | ||
| 923 | Q 494 709 494 1197 | ||
| 924 | Q 494 2125 923 3036 | ||
| 925 | Q 1353 3947 2222 4856 | ||
| 926 | L 2731 4856 | ||
| 927 | z | ||
| 928 | " transform="scale(0.015625)"/> | ||
| 929 | <path id="DejaVuSans-Oblique-73" d="M 3200 3397 | ||
| 930 | L 3091 2853 | ||
| 931 | Q 2863 2978 2609 3040 | ||
| 932 | Q 2356 3103 2088 3103 | ||
| 933 | Q 1634 3103 1373 2948 | ||
| 934 | Q 1113 2794 1113 2528 | ||
| 935 | Q 1113 2219 1719 2053 | ||
| 936 | Q 1766 2041 1788 2034 | ||
| 937 | L 1972 1978 | ||
| 938 | Q 2547 1819 2739 1644 | ||
| 939 | Q 2931 1469 2931 1166 | ||
| 940 | Q 2931 609 2489 259 | ||
| 941 | Q 2047 -91 1331 -91 | ||
| 942 | Q 1053 -91 747 -37 | ||
| 943 | Q 441 16 72 128 | ||
| 944 | L 184 722 | ||
| 945 | Q 500 559 806 475 | ||
| 946 | Q 1113 391 1394 391 | ||
| 947 | Q 1816 391 2080 572 | ||
| 948 | Q 2344 753 2344 1031 | ||
| 949 | Q 2344 1331 1650 1516 | ||
| 950 | L 1591 1531 | ||
| 951 | L 1394 1581 | ||
| 952 | Q 956 1697 753 1886 | ||
| 953 | Q 550 2075 550 2369 | ||
| 954 | Q 550 2928 970 3256 | ||
| 955 | Q 1391 3584 2113 3584 | ||
| 956 | Q 2397 3584 2667 3537 | ||
| 957 | Q 2938 3491 3200 3397 | ||
| 958 | z | ||
| 959 | " transform="scale(0.015625)"/> | ||
| 960 | <path id="DejaVuSans-Oblique-29" d="M -397 -844 | ||
| 961 | Q 434 191 840 1120 | ||
| 962 | Q 1247 2050 1247 2913 | ||
| 963 | Q 1247 3406 1130 3892 | ||
| 964 | Q 1013 4378 775 4856 | ||
| 965 | L 1275 4856 | ||
| 966 | Q 1563 4316 1703 3812 | ||
| 967 | Q 1844 3309 1844 2822 | ||
| 968 | Q 1844 1891 1411 973 | ||
| 969 | Q 978 56 116 -844 | ||
| 970 | L -397 -844 | ||
| 971 | z | ||
| 972 | " transform="scale(0.015625)"/> | ||
| 973 | </defs> | ||
| 974 | <use xlink:href="#DejaVuSans-Oblique-45"/> | ||
| 975 | <use xlink:href="#DejaVuSans-Oblique-6e" x="63.183594"/> | ||
| 976 | <use xlink:href="#DejaVuSans-Oblique-63" x="126.5625"/> | ||
| 977 | <use xlink:href="#DejaVuSans-Oblique-6f" x="181.542969"/> | ||
| 978 | <use xlink:href="#DejaVuSans-Oblique-64" x="242.724609"/> | ||
| 979 | <use xlink:href="#DejaVuSans-Oblique-69" x="306.201172"/> | ||
| 980 | <use xlink:href="#DejaVuSans-Oblique-6e" x="333.984375"/> | ||
| 981 | <use xlink:href="#DejaVuSans-Oblique-67" x="397.363281"/> | ||
| 982 | <use xlink:href="#DejaVuSans-Oblique-20" x="460.839844"/> | ||
| 983 | <use xlink:href="#DejaVuSans-Oblique-74" x="492.626953"/> | ||
| 984 | <use xlink:href="#DejaVuSans-Oblique-69" x="531.835938"/> | ||
| 985 | <use xlink:href="#DejaVuSans-Oblique-6d" x="559.619141"/> | ||
| 986 | <use xlink:href="#DejaVuSans-Oblique-65" x="657.03125"/> | ||
| 987 | <use xlink:href="#DejaVuSans-Oblique-20" x="718.554688"/> | ||
| 988 | <use xlink:href="#DejaVuSans-Oblique-28" x="750.341797"/> | ||
| 989 | <use xlink:href="#DejaVuSans-Oblique-6d" x="789.355469"/> | ||
| 990 | <use xlink:href="#DejaVuSans-Oblique-73" x="886.767578"/> | ||
| 991 | <use xlink:href="#DejaVuSans-Oblique-29" x="938.867188"/> | ||
| 992 | </g> | ||
| 993 | </g> | ||
| 994 | </g> | ||
| 995 | <g id="line2d_12"> | ||
| 996 | <path d="M 94.770241 246.725758 | ||
| 997 | L 205.538707 246.660118 | ||
| 998 | L 316.307173 246.465577 | ||
| 999 | L 427.075639 244.621633 | ||
| 1000 | L 537.844105 226.183224 | ||
| 1001 | L 648.612571 39.240909 | ||
| 1002 | " clip-path="url(#p6e18296699)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #000000; stroke-width: 1.5"/> | ||
| 1003 | </g> | ||
| 1004 | <g id="patch_3"> | ||
| 1005 | <path d="M 67.078125 257.1 | ||
| 1006 | L 67.078125 28.866667 | ||
| 1007 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1008 | </g> | ||
| 1009 | <g id="patch_4"> | ||
| 1010 | <path d="M 676.304688 257.1 | ||
| 1011 | L 676.304688 28.866667 | ||
| 1012 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1013 | </g> | ||
| 1014 | <g id="patch_5"> | ||
| 1015 | <path d="M 67.078125 257.1 | ||
| 1016 | L 676.304688 257.1 | ||
| 1017 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1018 | </g> | ||
| 1019 | <g id="patch_6"> | ||
| 1020 | <path d="M 67.078125 28.866667 | ||
| 1021 | L 676.304688 28.866667 | ||
| 1022 | " style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/> | ||
| 1023 | </g> | ||
| 1024 | <g id="text_14"> | ||
| 1025 | <!-- Encode to FASTA speed over time --> | ||
| 1026 | <g transform="translate(270.883906 22.866667)scale(0.12 -0.12)"> | ||
| 1027 | <defs> | ||
| 1028 | <path id="DejaVuSans-45" d="M 628 4666 | ||
| 1029 | L 3578 4666 | ||
| 1030 | L 3578 4134 | ||
| 1031 | L 1259 4134 | ||
| 1032 | L 1259 2753 | ||
| 1033 | L 3481 2753 | ||
| 1034 | L 3481 2222 | ||
| 1035 | L 1259 2222 | ||
| 1036 | L 1259 531 | ||
| 1037 | L 3634 531 | ||
| 1038 | L 3634 0 | ||
| 1039 | L 628 0 | ||
| 1040 | L 628 4666 | ||
| 1041 | z | ||
| 1042 | " transform="scale(0.015625)"/> | ||
| 1043 | <path id="DejaVuSans-6e" d="M 3513 2113 | ||
| 1044 | L 3513 0 | ||
| 1045 | L 2938 0 | ||
| 1046 | L 2938 2094 | ||
| 1047 | Q 2938 2591 2744 2837 | ||
| 1048 | Q 2550 3084 2163 3084 | ||
| 1049 | Q 1697 3084 1428 2787 | ||
| 1050 | Q 1159 2491 1159 1978 | ||
| 1051 | L 1159 0 | ||
| 1052 | L 581 0 | ||
| 1053 | L 581 3500 | ||
| 1054 | L 1159 3500 | ||
| 1055 | L 1159 2956 | ||
| 1056 | Q 1366 3272 1645 3428 | ||
| 1057 | Q 1925 3584 2291 3584 | ||
| 1058 | Q 2894 3584 3203 3211 | ||
| 1059 | Q 3513 2838 3513 2113 | ||
| 1060 | z | ||
| 1061 | " transform="scale(0.015625)"/> | ||
| 1062 | <path id="DejaVuSans-63" d="M 3122 3366 | ||
| 1063 | L 3122 2828 | ||
| 1064 | Q 2878 2963 2633 3030 | ||
| 1065 | Q 2388 3097 2138 3097 | ||
| 1066 | Q 1578 3097 1268 2742 | ||
| 1067 | Q 959 2388 959 1747 | ||
| 1068 | Q 959 1106 1268 751 | ||
| 1069 | Q 1578 397 2138 397 | ||
| 1070 | Q 2388 397 2633 464 | ||
| 1071 | Q 2878 531 3122 666 | ||
| 1072 | L 3122 134 | ||
| 1073 | Q 2881 22 2623 -34 | ||
| 1074 | Q 2366 -91 2075 -91 | ||
| 1075 | Q 1284 -91 818 406 | ||
| 1076 | Q 353 903 353 1747 | ||
| 1077 | Q 353 2603 823 3093 | ||
| 1078 | Q 1294 3584 2113 3584 | ||
| 1079 | Q 2378 3584 2631 3529 | ||
| 1080 | Q 2884 3475 3122 3366 | ||
| 1081 | z | ||
| 1082 | " transform="scale(0.015625)"/> | ||
| 1083 | <path id="DejaVuSans-6f" d="M 1959 3097 | ||
| 1084 | Q 1497 3097 1228 2736 | ||
| 1085 | Q 959 2375 959 1747 | ||
| 1086 | Q 959 1119 1226 758 | ||
| 1087 | Q 1494 397 1959 397 | ||
| 1088 | Q 2419 397 2687 759 | ||
| 1089 | Q 2956 1122 2956 1747 | ||
| 1090 | Q 2956 2369 2687 2733 | ||
| 1091 | Q 2419 3097 1959 3097 | ||
| 1092 | z | ||
| 1093 | M 1959 3584 | ||
| 1094 | Q 2709 3584 3137 3096 | ||
| 1095 | Q 3566 2609 3566 1747 | ||
| 1096 | Q 3566 888 3137 398 | ||
| 1097 | Q 2709 -91 1959 -91 | ||
| 1098 | Q 1206 -91 779 398 | ||
| 1099 | Q 353 888 353 1747 | ||
| 1100 | Q 353 2609 779 3096 | ||
| 1101 | Q 1206 3584 1959 3584 | ||
| 1102 | z | ||
| 1103 | " transform="scale(0.015625)"/> | ||
| 1104 | <path id="DejaVuSans-64" d="M 2906 2969 | ||
| 1105 | L 2906 4863 | ||
| 1106 | L 3481 4863 | ||
| 1107 | L 3481 0 | ||
| 1108 | L 2906 0 | ||
| 1109 | L 2906 525 | ||
| 1110 | Q 2725 213 2448 61 | ||
| 1111 | Q 2172 -91 1784 -91 | ||
| 1112 | Q 1150 -91 751 415 | ||
| 1113 | Q 353 922 353 1747 | ||
| 1114 | Q 353 2572 751 3078 | ||
| 1115 | Q 1150 3584 1784 3584 | ||
| 1116 | Q 2172 3584 2448 3432 | ||
| 1117 | Q 2725 3281 2906 2969 | ||
| 1118 | z | ||
| 1119 | M 947 1747 | ||
| 1120 | Q 947 1113 1208 752 | ||
| 1121 | Q 1469 391 1925 391 | ||
| 1122 | Q 2381 391 2643 752 | ||
| 1123 | Q 2906 1113 2906 1747 | ||
| 1124 | Q 2906 2381 2643 2742 | ||
| 1125 | Q 2381 3103 1925 3103 | ||
| 1126 | Q 1469 3103 1208 2742 | ||
| 1127 | Q 947 2381 947 1747 | ||
| 1128 | z | ||
| 1129 | " transform="scale(0.015625)"/> | ||
| 1130 | <path id="DejaVuSans-65" d="M 3597 1894 | ||
| 1131 | L 3597 1613 | ||
| 1132 | L 953 1613 | ||
| 1133 | Q 991 1019 1311 708 | ||
| 1134 | Q 1631 397 2203 397 | ||
| 1135 | Q 2534 397 2845 478 | ||
| 1136 | Q 3156 559 3463 722 | ||
| 1137 | L 3463 178 | ||
| 1138 | Q 3153 47 2828 -22 | ||
| 1139 | Q 2503 -91 2169 -91 | ||
| 1140 | Q 1331 -91 842 396 | ||
| 1141 | Q 353 884 353 1716 | ||
| 1142 | Q 353 2575 817 3079 | ||
| 1143 | Q 1281 3584 2069 3584 | ||
| 1144 | Q 2775 3584 3186 3129 | ||
| 1145 | Q 3597 2675 3597 1894 | ||
| 1146 | z | ||
| 1147 | M 3022 2063 | ||
| 1148 | Q 3016 2534 2758 2815 | ||
| 1149 | Q 2500 3097 2075 3097 | ||
| 1150 | Q 1594 3097 1305 2825 | ||
| 1151 | Q 1016 2553 972 2059 | ||
| 1152 | L 3022 2063 | ||
| 1153 | z | ||
| 1154 | " transform="scale(0.015625)"/> | ||
| 1155 | <path id="DejaVuSans-20" transform="scale(0.015625)"/> | ||
| 1156 | <path id="DejaVuSans-74" d="M 1172 4494 | ||
| 1157 | L 1172 3500 | ||
| 1158 | L 2356 3500 | ||
| 1159 | L 2356 3053 | ||
| 1160 | L 1172 3053 | ||
| 1161 | L 1172 1153 | ||
| 1162 | Q 1172 725 1289 603 | ||
| 1163 | Q 1406 481 1766 481 | ||
| 1164 | L 2356 481 | ||
| 1165 | L 2356 0 | ||
| 1166 | L 1766 0 | ||
| 1167 | Q 1100 0 847 248 | ||
| 1168 | Q 594 497 594 1153 | ||
| 1169 | L 594 3053 | ||
| 1170 | L 172 3053 | ||
| 1171 | L 172 3500 | ||
| 1172 | L 594 3500 | ||
| 1173 | L 594 4494 | ||
| 1174 | L 1172 4494 | ||
| 1175 | z | ||
| 1176 | " transform="scale(0.015625)"/> | ||
| 1177 | <path id="DejaVuSans-46" d="M 628 4666 | ||
| 1178 | L 3309 4666 | ||
| 1179 | L 3309 4134 | ||
| 1180 | L 1259 4134 | ||
| 1181 | L 1259 2759 | ||
| 1182 | L 3109 2759 | ||
| 1183 | L 3109 2228 | ||
| 1184 | L 1259 2228 | ||
| 1185 | L 1259 0 | ||
| 1186 | L 628 0 | ||
| 1187 | L 628 4666 | ||
| 1188 | z | ||
| 1189 | " transform="scale(0.015625)"/> | ||
| 1190 | <path id="DejaVuSans-41" d="M 2188 4044 | ||
| 1191 | L 1331 1722 | ||
| 1192 | L 3047 1722 | ||
| 1193 | L 2188 4044 | ||
| 1194 | z | ||
| 1195 | M 1831 4666 | ||
| 1196 | L 2547 4666 | ||
| 1197 | L 4325 0 | ||
| 1198 | L 3669 0 | ||
| 1199 | L 3244 1197 | ||
| 1200 | L 1141 1197 | ||
| 1201 | L 716 0 | ||
| 1202 | L 50 0 | ||
| 1203 | L 1831 4666 | ||
| 1204 | z | ||
| 1205 | " transform="scale(0.015625)"/> | ||
| 1206 | <path id="DejaVuSans-53" d="M 3425 4513 | ||
| 1207 | L 3425 3897 | ||
| 1208 | Q 3066 4069 2747 4153 | ||
| 1209 | Q 2428 4238 2131 4238 | ||
| 1210 | Q 1616 4238 1336 4038 | ||
| 1211 | Q 1056 3838 1056 3469 | ||
| 1212 | Q 1056 3159 1242 3001 | ||
| 1213 | Q 1428 2844 1947 2747 | ||
| 1214 | L 2328 2669 | ||
| 1215 | Q 3034 2534 3370 2195 | ||
| 1216 | Q 3706 1856 3706 1288 | ||
| 1217 | Q 3706 609 3251 259 | ||
| 1218 | Q 2797 -91 1919 -91 | ||
| 1219 | Q 1588 -91 1214 -16 | ||
| 1220 | Q 841 59 441 206 | ||
| 1221 | L 441 856 | ||
| 1222 | Q 825 641 1194 531 | ||
| 1223 | Q 1563 422 1919 422 | ||
| 1224 | Q 2459 422 2753 634 | ||
| 1225 | Q 3047 847 3047 1241 | ||
| 1226 | Q 3047 1584 2836 1778 | ||
| 1227 | Q 2625 1972 2144 2069 | ||
| 1228 | L 1759 2144 | ||
| 1229 | Q 1053 2284 737 2584 | ||
| 1230 | Q 422 2884 422 3419 | ||
| 1231 | Q 422 4038 858 4394 | ||
| 1232 | Q 1294 4750 2059 4750 | ||
| 1233 | Q 2388 4750 2728 4690 | ||
| 1234 | Q 3069 4631 3425 4513 | ||
| 1235 | z | ||
| 1236 | " transform="scale(0.015625)"/> | ||
| 1237 | <path id="DejaVuSans-54" d="M -19 4666 | ||
| 1238 | L 3928 4666 | ||
| 1239 | L 3928 4134 | ||
| 1240 | L 2272 4134 | ||
| 1241 | L 2272 0 | ||
| 1242 | L 1638 0 | ||
| 1243 | L 1638 4134 | ||
| 1244 | L -19 4134 | ||
| 1245 | L -19 4666 | ||
| 1246 | z | ||
| 1247 | " transform="scale(0.015625)"/> | ||
| 1248 | <path id="DejaVuSans-73" d="M 2834 3397 | ||
| 1249 | L 2834 2853 | ||
| 1250 | Q 2591 2978 2328 3040 | ||
| 1251 | Q 2066 3103 1784 3103 | ||
| 1252 | Q 1356 3103 1142 2972 | ||
| 1253 | Q 928 2841 928 2578 | ||
| 1254 | Q 928 2378 1081 2264 | ||
| 1255 | Q 1234 2150 1697 2047 | ||
| 1256 | L 1894 2003 | ||
| 1257 | Q 2506 1872 2764 1633 | ||
| 1258 | Q 3022 1394 3022 966 | ||
| 1259 | Q 3022 478 2636 193 | ||
| 1260 | Q 2250 -91 1575 -91 | ||
| 1261 | Q 1294 -91 989 -36 | ||
| 1262 | Q 684 19 347 128 | ||
| 1263 | L 347 722 | ||
| 1264 | Q 666 556 975 473 | ||
| 1265 | Q 1284 391 1588 391 | ||
| 1266 | Q 1994 391 2212 530 | ||
| 1267 | Q 2431 669 2431 922 | ||
| 1268 | Q 2431 1156 2273 1281 | ||
| 1269 | Q 2116 1406 1581 1522 | ||
| 1270 | L 1381 1569 | ||
| 1271 | Q 847 1681 609 1914 | ||
| 1272 | Q 372 2147 372 2553 | ||
| 1273 | Q 372 3047 722 3315 | ||
| 1274 | Q 1072 3584 1716 3584 | ||
| 1275 | Q 2034 3584 2315 3537 | ||
| 1276 | Q 2597 3491 2834 3397 | ||
| 1277 | z | ||
| 1278 | " transform="scale(0.015625)"/> | ||
| 1279 | <path id="DejaVuSans-70" d="M 1159 525 | ||
| 1280 | L 1159 -1331 | ||
| 1281 | L 581 -1331 | ||
| 1282 | L 581 3500 | ||
| 1283 | L 1159 3500 | ||
| 1284 | L 1159 2969 | ||
| 1285 | Q 1341 3281 1617 3432 | ||
| 1286 | Q 1894 3584 2278 3584 | ||
| 1287 | Q 2916 3584 3314 3078 | ||
| 1288 | Q 3713 2572 3713 1747 | ||
| 1289 | Q 3713 922 3314 415 | ||
| 1290 | Q 2916 -91 2278 -91 | ||
| 1291 | Q 1894 -91 1617 61 | ||
| 1292 | Q 1341 213 1159 525 | ||
| 1293 | z | ||
| 1294 | M 3116 1747 | ||
| 1295 | Q 3116 2381 2855 2742 | ||
| 1296 | Q 2594 3103 2138 3103 | ||
| 1297 | Q 1681 3103 1420 2742 | ||
| 1298 | Q 1159 2381 1159 1747 | ||
| 1299 | Q 1159 1113 1420 752 | ||
| 1300 | Q 1681 391 2138 391 | ||
| 1301 | Q 2594 391 2855 752 | ||
| 1302 | Q 3116 1113 3116 1747 | ||
| 1303 | z | ||
| 1304 | " transform="scale(0.015625)"/> | ||
| 1305 | <path id="DejaVuSans-76" d="M 191 3500 | ||
| 1306 | L 800 3500 | ||
| 1307 | L 1894 563 | ||
| 1308 | L 2988 3500 | ||
| 1309 | L 3597 3500 | ||
| 1310 | L 2284 0 | ||
| 1311 | L 1503 0 | ||
| 1312 | L 191 3500 | ||
| 1313 | z | ||
| 1314 | " transform="scale(0.015625)"/> | ||
| 1315 | <path id="DejaVuSans-72" d="M 2631 2963 | ||
| 1316 | Q 2534 3019 2420 3045 | ||
| 1317 | Q 2306 3072 2169 3072 | ||
| 1318 | Q 1681 3072 1420 2755 | ||
| 1319 | Q 1159 2438 1159 1844 | ||
| 1320 | L 1159 0 | ||
| 1321 | L 581 0 | ||
| 1322 | L 581 3500 | ||
| 1323 | L 1159 3500 | ||
| 1324 | L 1159 2956 | ||
| 1325 | Q 1341 3275 1631 3429 | ||
| 1326 | Q 1922 3584 2338 3584 | ||
| 1327 | Q 2397 3584 2469 3576 | ||
| 1328 | Q 2541 3569 2628 3553 | ||
| 1329 | L 2631 2963 | ||
| 1330 | z | ||
| 1331 | " transform="scale(0.015625)"/> | ||
| 1332 | <path id="DejaVuSans-69" d="M 603 3500 | ||
| 1333 | L 1178 3500 | ||
| 1334 | L 1178 0 | ||
| 1335 | L 603 0 | ||
| 1336 | L 603 3500 | ||
| 1337 | z | ||
| 1338 | M 603 4863 | ||
| 1339 | L 1178 4863 | ||
| 1340 | L 1178 4134 | ||
| 1341 | L 603 4134 | ||
| 1342 | L 603 4863 | ||
| 1343 | z | ||
| 1344 | " transform="scale(0.015625)"/> | ||
| 1345 | <path id="DejaVuSans-6d" d="M 3328 2828 | ||
| 1346 | Q 3544 3216 3844 3400 | ||
| 1347 | Q 4144 3584 4550 3584 | ||
| 1348 | Q 5097 3584 5394 3201 | ||
| 1349 | Q 5691 2819 5691 2113 | ||
| 1350 | L 5691 0 | ||
| 1351 | L 5113 0 | ||
| 1352 | L 5113 2094 | ||
| 1353 | Q 5113 2597 4934 2840 | ||
| 1354 | Q 4756 3084 4391 3084 | ||
| 1355 | Q 3944 3084 3684 2787 | ||
| 1356 | Q 3425 2491 3425 1978 | ||
| 1357 | L 3425 0 | ||
| 1358 | L 2847 0 | ||
| 1359 | L 2847 2094 | ||
| 1360 | Q 2847 2600 2669 2842 | ||
| 1361 | Q 2491 3084 2119 3084 | ||
| 1362 | Q 1678 3084 1418 2786 | ||
| 1363 | Q 1159 2488 1159 1978 | ||
| 1364 | L 1159 0 | ||
| 1365 | L 581 0 | ||
| 1366 | L 581 3500 | ||
| 1367 | L 1159 3500 | ||
| 1368 | L 1159 2956 | ||
| 1369 | Q 1356 3278 1631 3431 | ||
| 1370 | Q 1906 3584 2284 3584 | ||
| 1371 | Q 2666 3584 2933 3390 | ||
| 1372 | Q 3200 3197 3328 2828 | ||
| 1373 | z | ||
| 1374 | " transform="scale(0.015625)"/> | ||
| 1375 | </defs> | ||
| 1376 | <use xlink:href="#DejaVuSans-45"/> | ||
| 1377 | <use xlink:href="#DejaVuSans-6e" x="63.183594"/> | ||
| 1378 | <use xlink:href="#DejaVuSans-63" x="126.5625"/> | ||
| 1379 | <use xlink:href="#DejaVuSans-6f" x="181.542969"/> | ||
| 1380 | <use xlink:href="#DejaVuSans-64" x="242.724609"/> | ||
| 1381 | <use xlink:href="#DejaVuSans-65" x="306.201172"/> | ||
| 1382 | <use xlink:href="#DejaVuSans-20" x="367.724609"/> | ||
| 1383 | <use xlink:href="#DejaVuSans-74" x="399.511719"/> | ||
| 1384 | <use xlink:href="#DejaVuSans-6f" x="438.720703"/> | ||
| 1385 | <use xlink:href="#DejaVuSans-20" x="499.902344"/> | ||
| 1386 | <use xlink:href="#DejaVuSans-46" x="531.689453"/> | ||
| 1387 | <use xlink:href="#DejaVuSans-41" x="580.083984"/> | ||
| 1388 | <use xlink:href="#DejaVuSans-53" x="648.492188"/> | ||
| 1389 | <use xlink:href="#DejaVuSans-54" x="711.96875"/> | ||
| 1390 | <use xlink:href="#DejaVuSans-41" x="765.302734"/> | ||
| 1391 | <use xlink:href="#DejaVuSans-20" x="833.710938"/> | ||
| 1392 | <use xlink:href="#DejaVuSans-73" x="865.498047"/> | ||
| 1393 | <use xlink:href="#DejaVuSans-70" x="917.597656"/> | ||
| 1394 | <use xlink:href="#DejaVuSans-65" x="981.074219"/> | ||
| 1395 | <use xlink:href="#DejaVuSans-65" x="1042.597656"/> | ||
| 1396 | <use xlink:href="#DejaVuSans-64" x="1104.121094"/> | ||
| 1397 | <use xlink:href="#DejaVuSans-20" x="1167.597656"/> | ||
| 1398 | <use xlink:href="#DejaVuSans-6f" x="1199.384766"/> | ||
| 1399 | <use xlink:href="#DejaVuSans-76" x="1260.566406"/> | ||
| 1400 | <use xlink:href="#DejaVuSans-65" x="1319.746094"/> | ||
| 1401 | <use xlink:href="#DejaVuSans-72" x="1381.269531"/> | ||
| 1402 | <use xlink:href="#DejaVuSans-20" x="1422.382812"/> | ||
| 1403 | <use xlink:href="#DejaVuSans-74" x="1454.169922"/> | ||
| 1404 | <use xlink:href="#DejaVuSans-69" x="1493.378906"/> | ||
| 1405 | <use xlink:href="#DejaVuSans-6d" x="1521.162109"/> | ||
| 1406 | <use xlink:href="#DejaVuSans-65" x="1618.574219"/> | ||
| 1407 | </g> | ||
| 1408 | </g> | ||
| 1409 | </g> | ||
| 1410 | </g> | ||
| 1411 | <defs> | ||
| 1412 | <clipPath id="p6e18296699"> | ||
| 1413 | <rect x="67.078125" y="28.866667" width="609.226562" height="228.233333"/> | ||
| 1414 | </clipPath> | ||
| 1415 | </defs> | ||
| 1416 | </svg> | ||
diff --git a/static/assets/posts/dna-sequence/dna-basics.jpg b/static/assets/posts/dna-sequence/dna-basics.jpg new file mode 100755 index 0000000..c2e7f52 --- /dev/null +++ b/static/assets/posts/dna-sequence/dna-basics.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-sequence/quote.png b/static/assets/posts/dna-sequence/quote.png new file mode 100755 index 0000000..09fb01c --- /dev/null +++ b/static/assets/posts/dna-sequence/quote.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-sequence/sample-binary-file.png b/static/assets/posts/dna-sequence/sample-binary-file.png new file mode 100755 index 0000000..1e4622a --- /dev/null +++ b/static/assets/posts/dna-sequence/sample-binary-file.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-sequence/sample.png b/static/assets/posts/dna-sequence/sample.png new file mode 100755 index 0000000..30f12da --- /dev/null +++ b/static/assets/posts/dna-sequence/sample.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/bison/in.txt b/static/assets/posts/dna-synthesized/bison/in.txt new file mode 100755 index 0000000..fd1eea6 --- /dev/null +++ b/static/assets/posts/dna-synthesized/bison/in.txt | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | GGTCAGCCCAAATCCGCACCCTCGGTCACCCTGTTTCCGCCCTCCACGGAGGAGCTCACT | ||
| 2 | GCCAACAAGGCCACCCTGGTGTGTCTCATCAGCGACTTCTACCCGGGTAGCGTGACCGTG | ||
| 3 | GCCTGGAAGGCAGACGGCAGCACCATCACCCGCAACGTGGAGACCACCCGGGCCTCCAAA | ||
| 4 | CAGAGCAACAGCAAGTACGCGAAAAGCGGTTACAGCTGCGAGGTCACGCACGAGGGGAGC | ||
| 5 | ACCGTGACGAAGACAGTGAAGCCCTCAGCGTGTCAGCCCAAGTCCGCACCCTTGGTCACC | ||
| 6 | CTGTTCCCGCCCTCCAAGGAGGAGCTCAGCGCCAACAAGGCCACCCTGGTGTGTCTCATC | ||
| 7 | AGCGACTTCTACCCGGGTAGCGTGACCGTGGTCTGGAAGGCAGACGGCAGCACCATCACC | ||
| 8 | CGCAACGTGGAGACCACCCGGGCCTCCAAACAGAGCAACAGCAAGTACGCGGCCAGCAGC | ||
| 9 | TACCTGAGCCTGACGGGCAGCGACTGGAAATCGAAAGGCAGTTACAGCTGCGAGGTCACG | ||
| 10 | CACGAGGGGAGCACCGTGACGAAGACAGTGAAGGTCTCAGAGTGTCAGCCCAAGTCCGCA | ||
| 11 | |||
diff --git a/static/assets/posts/dna-synthesized/bison/out.mp3 b/static/assets/posts/dna-synthesized/bison/out.mp3 new file mode 100755 index 0000000..d6408ca --- /dev/null +++ b/static/assets/posts/dna-synthesized/bison/out.mp3 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/bison/spectogram.png b/static/assets/posts/dna-synthesized/bison/spectogram.png new file mode 100755 index 0000000..959902b --- /dev/null +++ b/static/assets/posts/dna-synthesized/bison/spectogram.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/elektron/IMG_0619.jpg b/static/assets/posts/dna-synthesized/elektron/IMG_0619.jpg new file mode 100755 index 0000000..ebf60b0 --- /dev/null +++ b/static/assets/posts/dna-synthesized/elektron/IMG_0619.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/elektron/IMG_0620.jpg b/static/assets/posts/dna-synthesized/elektron/IMG_0620.jpg new file mode 100755 index 0000000..c9aa398 --- /dev/null +++ b/static/assets/posts/dna-synthesized/elektron/IMG_0620.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/elektron/IMG_0622.jpg b/static/assets/posts/dna-synthesized/elektron/IMG_0622.jpg new file mode 100755 index 0000000..98acee4 --- /dev/null +++ b/static/assets/posts/dna-synthesized/elektron/IMG_0622.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/elektron/elektron.mp4 b/static/assets/posts/dna-synthesized/elektron/elektron.mp4 new file mode 100755 index 0000000..f8e39b9 --- /dev/null +++ b/static/assets/posts/dna-synthesized/elektron/elektron.mp4 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/elektron/midi-studio.jpg b/static/assets/posts/dna-synthesized/elektron/midi-studio.jpg new file mode 100755 index 0000000..59075cd --- /dev/null +++ b/static/assets/posts/dna-synthesized/elektron/midi-studio.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/mouse/in.txt b/static/assets/posts/dna-synthesized/mouse/in.txt new file mode 100755 index 0000000..abd34a2 --- /dev/null +++ b/static/assets/posts/dna-synthesized/mouse/in.txt | |||
| @@ -0,0 +1,9 @@ | |||
| 1 | GAATTCTCAGGGCCTGTGATGGTCTATACTGCATGGCATATCAGTGTAGAGAAAATAAAT | ||
| 2 | AGACACAAGCTCCAATCCCAAACCCAGAAACTATTAATAACAAACGAAAAATTAGTTCTC | ||
| 3 | TCAAATGAAGTCTCCCTGAGGATACAGATCCCATTCAGATGGGCAGGTCTGCAGGCCAAC | ||
| 4 | ACAAAATGAACTCAGGGGCCTCTTTGGAGGTCTTAGGTCTCATAATGTTTTGTCAGGCCT | ||
| 5 | TTTATCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTGCTTATTTATCTTAAAACCCACTA | ||
| 6 | GCTGTTCTCTCCAGGGTCACACCCTAGCACACTCCGTCTAGGTGCCTTCTTACCATCTCC | ||
| 7 | TCTAAGTGAGTGGAGGCTCCCTGTGTATTTCCACACCCTTGTACTTTAAGTATTTTCAAG | ||
| 8 | GCAGGGCATATCCTCTCTCACTGAGTCCAGACAAAGCAGCTCAAATAGAAGAACATGTCC | ||
| 9 | CACATACAGGCAACAGATTTTGAAGGAGGCCTCCACTCCAGCTGTTAGGGGACCCACATG | ||
diff --git a/static/assets/posts/dna-synthesized/mouse/out.mp3 b/static/assets/posts/dna-synthesized/mouse/out.mp3 new file mode 100755 index 0000000..e66e87b --- /dev/null +++ b/static/assets/posts/dna-synthesized/mouse/out.mp3 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/mouse/spectogram.png b/static/assets/posts/dna-synthesized/mouse/spectogram.png new file mode 100755 index 0000000..8b7f63f --- /dev/null +++ b/static/assets/posts/dna-synthesized/mouse/spectogram.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/quote/in.txt b/static/assets/posts/dna-synthesized/quote/in.txt new file mode 100755 index 0000000..81e8eb9 --- /dev/null +++ b/static/assets/posts/dna-synthesized/quote/in.txt | |||
| @@ -0,0 +1,8 @@ | |||
| 1 | GACAGCTTGTGTACAAGTGTGCTTGCTCGCGAGCGGGTACGCGCGTGGGCTAACAAGTGA | ||
| 2 | GCCAGCAGGTGAACAAGTGTGCGGACAAGCCAGCAGGTGCGCGGACAAGCTGGCGGGTGA | ||
| 3 | ACAAGTGTGCCGGTGAGCCAACAAGCAGACAAGTAAGCAGGTACGCAGGCGAGCTTGTCA | ||
| 4 | ACTCACAAGATCGCTTGTGTACAAGTGTGCGGACAAGCCAGCAGGTGCGCGGACAAGTAT | ||
| 5 | GCTTGCTGGCGGACAAGCCAGCTTGTAAGCGGACAAGCTTGCGCACAAGCTGGCAGGCCT | ||
| 6 | GCCGGCTCGCGTACAAATTCACAAGTAAGTACGCTTGCGTGTACGCGGGTATGTATACTC | ||
| 7 | AACCTCACCAAACGGGACAAGATCGCCGGCGGGCTAGTATACAAGAACGCTTGCCAGTAC | ||
| 8 | AACC \ No newline at end of file | ||
diff --git a/static/assets/posts/dna-synthesized/quote/out.mp3 b/static/assets/posts/dna-synthesized/quote/out.mp3 new file mode 100755 index 0000000..985871d --- /dev/null +++ b/static/assets/posts/dna-synthesized/quote/out.mp3 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/quote/spectogram.png b/static/assets/posts/dna-synthesized/quote/spectogram.png new file mode 100755 index 0000000..c460ffd --- /dev/null +++ b/static/assets/posts/dna-synthesized/quote/spectogram.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/symphony-no6-1st-movement.mp3 b/static/assets/posts/dna-synthesized/symphony-no6-1st-movement.mp3 new file mode 100755 index 0000000..8c5a609 --- /dev/null +++ b/static/assets/posts/dna-synthesized/symphony-no6-1st-movement.mp3 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/symphony-no6-1st-movement.png b/static/assets/posts/dna-synthesized/symphony-no6-1st-movement.png new file mode 100755 index 0000000..8269f08 --- /dev/null +++ b/static/assets/posts/dna-synthesized/symphony-no6-1st-movement.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/taurus/in.txt b/static/assets/posts/dna-synthesized/taurus/in.txt new file mode 100755 index 0000000..8c5bddb --- /dev/null +++ b/static/assets/posts/dna-synthesized/taurus/in.txt | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | GGTCAGCCCAAGTCCCCACCCTCGGTCACCCTGTTCCCGCCCTCCAAGGAGGAGCTCAGC | ||
| 2 | GCCAACAAGGCCACCCTGGTGTGTCTCATCAGCGACTTCTACCCGGGTAGCGTGACCGTG | ||
| 3 | GCCTGGAAGGCAGACGGCAGCACCATCACCCGCAACGTGGAGACCACCCGGGCCTCCAAA | ||
| 4 | CAGAGCAACAGCAAGTACGCGGCCAGCAGCTACCTGAGCCTGACGAGCAGCGACTGGAAA | ||
| 5 | TCGAAAGGCAGTTACAGCTGCGAGGTCACGCACGAGGGGAGCACCGTGACGAAGACAGTG | ||
| 6 | AAGACCTCAGCGTGTCAGCCCAAGTCCCCACCCTCGGTCACCCTGTTCCCGCCCTCCACG | ||
| 7 | GAGGAGCTCAACGGCAACAAGGCCACCCTGGTGTGTCTCATCAGCGACTTCTACCCGGGT | ||
| 8 | AGCGTGACCGTGGTCTGGAAGGCAGACGGCAGCACCATCACCCGCAACGTGGAGACCACC | ||
| 9 | CGGGCCTCCAAACAGAGCAACAGCAAGTACGCGGCCAGCAGCTACCTGAGCCTGACGAGC | ||
| 10 | AGCGACTGGAAATCGAAAGGCAGTTACAGCTGCGAGGTCACGCACGAGGGGAGCACCGTG | ||
| 11 | ACGAAGACAGTGAAGCCCTCAGAGTGGCCCTGGGCCCCCACCGCCGTCCCCACCCTCGTC | ||
diff --git a/static/assets/posts/dna-synthesized/taurus/out.mp3 b/static/assets/posts/dna-synthesized/taurus/out.mp3 new file mode 100755 index 0000000..ea7ae1a --- /dev/null +++ b/static/assets/posts/dna-synthesized/taurus/out.mp3 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/dna-synthesized/taurus/spectogram.png b/static/assets/posts/dna-synthesized/taurus/spectogram.png new file mode 100755 index 0000000..3be9b58 --- /dev/null +++ b/static/assets/posts/dna-synthesized/taurus/spectogram.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/do-fuse/copy-benchmarks.tsv b/static/assets/posts/do-fuse/copy-benchmarks.tsv new file mode 100755 index 0000000..c7a7af4 --- /dev/null +++ b/static/assets/posts/do-fuse/copy-benchmarks.tsv | |||
| @@ -0,0 +1,101 @@ | |||
| 1 | 10KB 100KB 1MB 10MB | ||
| 2 | 0.15 0.187 0.317 0.653 | ||
| 3 | 0.158 0.237 0.192 0.659 | ||
| 4 | 0.134 0.359 0.236 0.604 | ||
| 5 | 0.136 0.292 0.196 0.501 | ||
| 6 | 4.411 4.479 4.376 0.649 | ||
| 7 | 0.134 0.481 0.265 0.608 | ||
| 8 | 0.146 0.266 0.28 0.516 | ||
| 9 | 4.282 0.307 4.549 0.562 | ||
| 10 | 0.152 0.28 0.229 0.512 | ||
| 11 | 0.162 0.37 0.315 0.652 | ||
| 12 | 0.13 4.735 0.222 5.171 | ||
| 13 | 4.29 8.767 0.283 5.076 | ||
| 14 | 4.555 4.682 0.318 4.941 | ||
| 15 | 4.658 4.691 0.177 9.624 | ||
| 16 | 4.778 4.791 4.415 5.114 | ||
| 17 | 8.794 8.604 0.311 5.223 | ||
| 18 | 4.582 4.727 0.234 9.28 | ||
| 19 | 4.596 4.638 0.212 5.064 | ||
| 20 | 4.7 4.65 4.458 5.221 | ||
| 21 | 8.822 9.159 0.191 5.032 | ||
| 22 | 4.628 4.641 0.324 9.226 | ||
| 23 | 4.6 4.921 0.197 5.22 | ||
| 24 | 8.85 4.58 4.405 5.245 | ||
| 25 | 4.65 9.142 0.215 5.168 | ||
| 26 | 4.884 6.67 0.248 9.273 | ||
| 27 | 4.581 4.594 0.248 5.082 | ||
| 28 | 8.864 4.844 4.502 5.121 | ||
| 29 | 4.704 4.656 0.177 5.173 | ||
| 30 | 4.616 8.883 0.209 9.334 | ||
| 31 | 4.729 4.962 4.366 4.966 | ||
| 32 | 8.918 4.682 0.186 6.702 | ||
| 33 | 4.686 4.58 0.168 5.111 | ||
| 34 | 5.123 8.84 4.747 5.084 | ||
| 35 | 4.846 4.732 8.85 5.065 | ||
| 36 | 8.887 4.639 4.824 9.286 | ||
| 37 | 4.681 8.897 4.791 5.104 | ||
| 38 | 4.649 4.682 4.835 5.194 | ||
| 39 | 8.847 4.663 8.929 5.271 | ||
| 40 | 4.568 4.604 4.762 9.444 | ||
| 41 | 4.657 8.74 4.772 5.076 | ||
| 42 | 4.636 4.724 4.838 5.168 | ||
| 43 | 8.778 4.846 9.065 5.057 | ||
| 44 | 4.995 4.571 5.074 9.314 | ||
| 45 | 2.343 9.222 4.818 5.732 | ||
| 46 | 4.742 4.646 8.909 5.32 | ||
| 47 | 4.82 4.842 4.778 5.167 | ||
| 48 | 8.791 4.66 4.759 5.157 | ||
| 49 | 4.835 8.944 4.804 9.323 | ||
| 50 | 4.599 5.594 8.952 5.299 | ||
| 51 | 4.809 4.628 1.567 5.294 | ||
| 52 | 8.744 4.771 5.59 5.018 | ||
| 53 | 4.71 8.919 4.771 9.257 | ||
| 54 | 4.704 4.7 9.003 5.064 | ||
| 55 | 4.765 4.605 4.781 5.185 | ||
| 56 | 8.866 4.669 4.844 5.392 | ||
| 57 | 4.897 8.925 4.786 9.279 | ||
| 58 | 4.568 5.168 8.893 5.1 | ||
| 59 | 4.679 4.757 5.41 5.232 | ||
| 60 | 8.922 4.702 4.7 1.984 | ||
| 61 | 4.669 8.721 4.906 5.366 | ||
| 62 | 4.707 4.555 8.96 5.245 | ||
| 63 | 8.938 4.615 4.89 5.216 | ||
| 64 | 4.608 4.621 4.677 9.237 | ||
| 65 | 4.58 8.954 4.908 5.194 | ||
| 66 | 4.707 4.575 8.968 5.017 | ||
| 67 | 8.822 4.781 4.882 9.714 | ||
| 68 | 4.674 8.833 4.834 5.02 | ||
| 69 | 5.005 4.689 4.762 5.312 | ||
| 70 | 4.732 4.799 9.111 5.286 | ||
| 71 | 8.894 4.675 4.936 5.185 | ||
| 72 | 4.747 8.764 4.739 9.312 | ||
| 73 | 4.785 4.749 4.845 5.34 | ||
| 74 | 4.656 4.705 9.181 5.256 | ||
| 75 | 8.899 4.601 4.739 5.261 | ||
| 76 | 4.594 8.813 4.576 9.329 | ||
| 77 | 4.585 4.716 8.813 5.343 | ||
| 78 | 8.718 4.723 4.819 5.092 | ||
| 79 | 4.725 4.757 4.83 5.061 | ||
| 80 | 4.737 8.899 4.772 9.488 | ||
| 81 | 4.692 4.717 8.831 5.13 | ||
| 82 | 8.841 4.951 4.787 5.309 | ||
| 83 | 4.66 8.895 4.746 5.228 | ||
| 84 | 4.749 4.595 4.833 5.26 | ||
| 85 | 4.715 4.615 8.928 9.381 | ||
| 86 | 8.849 4.651 4.826 5.289 | ||
| 87 | 4.66 8.897 4.802 5.197 | ||
| 88 | 4.588 4.844 4.883 9.311 | ||
| 89 | 4.753 4.888 9.053 5.072 | ||
| 90 | 8.841 4.737 4.75 5.157 | ||
| 91 | 4.794 8.976 5.063 5.196 | ||
| 92 | 4.544 4.673 9.036 9.335 | ||
| 93 | 8.74 4.654 6.377 5.29 | ||
| 94 | 4.729 4.752 5.001 5.048 | ||
| 95 | 4.654 8.98 4.873 5.544 | ||
| 96 | 4.9 4.606 4.723 5.192 | ||
| 97 | 8.757 4.802 5.427 9.056 | ||
| 98 | 4.859 8.969 4.816 5.3 | ||
| 99 | 4.701 4.662 9.002 5.138 | ||
| 100 | 4.943 4.813 4.894 5.15 | ||
| 101 | 8.772 4.721 4.785 9.168 | ||
diff --git a/static/assets/posts/do-fuse/fuse-droplets.png b/static/assets/posts/do-fuse/fuse-droplets.png new file mode 100755 index 0000000..d7ce243 --- /dev/null +++ b/static/assets/posts/do-fuse/fuse-droplets.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/do-fuse/fuse-spaces.png b/static/assets/posts/do-fuse/fuse-spaces.png new file mode 100755 index 0000000..4dcc1c5 --- /dev/null +++ b/static/assets/posts/do-fuse/fuse-spaces.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/do-fuse/sqlite-benchmarks.tsv b/static/assets/posts/do-fuse/sqlite-benchmarks.tsv new file mode 100755 index 0000000..daa2c21 --- /dev/null +++ b/static/assets/posts/do-fuse/sqlite-benchmarks.tsv | |||
| @@ -0,0 +1,1001 @@ | |||
| 1 | DROPTABLE CREATETABLE INSERTMANY FETCHALL COMMIT | ||
| 2 | 0.000732 0.000400 0.008133 0.000065 0.000166 | ||
| 3 | 0.000200 0.000214 0.003105 0.000043 0.000171 | ||
| 4 | 0.000246 0.000170 0.006594 0.000044 0.000101 | ||
| 5 | 0.000182 0.000166 0.003892 0.000043 0.000112 | ||
| 6 | 0.000248 0.000654 0.002308 0.000041 0.000090 | ||
| 7 | 0.000240 0.000184 0.002253 0.000053 0.000110 | ||
| 8 | 0.000698 0.000483 0.003737 0.000041 0.000165 | ||
| 9 | 0.000217 0.000179 0.002470 0.000049 0.000107 | ||
| 10 | 0.000243 0.000160 0.002668 0.000054 0.000340 | ||
| 11 | 0.000196 0.000169 0.002247 0.000040 0.000096 | ||
| 12 | 0.000191 0.000162 0.003522 0.000260 0.000102 | ||
| 13 | 0.000195 0.000188 0.002325 0.000041 0.000132 | ||
| 14 | 0.000194 0.000202 0.002291 0.000039 0.000091 | ||
| 15 | 0.000195 0.000196 0.004114 0.000042 0.000108 | ||
| 16 | 0.000204 0.000200 0.002971 0.000040 0.000106 | ||
| 17 | 0.000227 0.000159 0.002208 0.000039 0.000117 | ||
| 18 | 0.000207 0.000176 0.003558 0.000040 0.000124 | ||
| 19 | 0.000255 0.000179 0.002870 0.000040 0.000125 | ||
| 20 | 0.000209 0.000176 0.002248 0.000040 0.000176 | ||
| 21 | 0.000211 0.000174 0.002661 0.000039 0.000180 | ||
| 22 | 0.000208 0.000219 0.002321 0.000039 0.000151 | ||
| 23 | 0.000212 0.000178 0.002609 0.000040 0.000132 | ||
| 24 | 0.000205 0.000209 0.002666 0.000039 0.000126 | ||
| 25 | 0.000205 0.000176 0.002501 0.000041 0.000133 | ||
| 26 | 0.000243 0.000183 0.002220 0.000037 0.000117 | ||
| 27 | 0.000504 0.000173 0.002230 0.000121 0.000414 | ||
| 28 | 0.000270 0.000200 0.002325 0.000040 0.000154 | ||
| 29 | 0.000208 0.000176 0.002386 0.000038 0.000123 | ||
| 30 | 0.000229 0.000182 0.002245 0.000039 0.000127 | ||
| 31 | 0.000211 0.000176 0.002544 0.000039 0.000136 | ||
| 32 | 0.000204 0.000180 0.002133 0.000037 0.000129 | ||
| 33 | 0.000205 0.000178 0.002330 0.000048 0.000146 | ||
| 34 | 0.000210 0.000178 0.002242 0.000039 0.000109 | ||
| 35 | 0.000210 0.000259 0.002766 0.000039 0.000118 | ||
| 36 | 0.000317 0.000495 0.002237 0.000039 0.000195 | ||
| 37 | 0.000454 0.000246 0.002447 0.000040 0.000172 | ||
| 38 | 0.000936 0.000200 0.002305 0.000057 0.000173 | ||
| 39 | 0.000263 0.000178 0.002251 0.000038 0.000166 | ||
| 40 | 0.000240 0.000183 0.002169 0.000068 0.000176 | ||
| 41 | 0.000251 0.000189 0.002221 0.000038 0.000141 | ||
| 42 | 0.000268 0.000215 0.002322 0.000039 0.000226 | ||
| 43 | 0.000287 0.000223 0.002696 0.000045 0.000247 | ||
| 44 | 0.000362 0.000229 0.002551 0.000043 0.000133 | ||
| 45 | 0.000239 0.000200 0.002621 0.000045 0.000133 | ||
| 46 | 0.000634 0.000208 0.002619 0.000046 0.000138 | ||
| 47 | 0.000236 0.000205 0.002589 0.000046 0.000137 | ||
| 48 | 0.000262 0.000205 0.002607 0.000045 0.000142 | ||
| 49 | 0.000239 0.000198 0.002754 0.000044 0.000185 | ||
| 50 | 0.000238 0.000198 0.002593 0.000057 0.000160 | ||
| 51 | 0.000242 0.000221 0.003784 0.000122 0.000174 | ||
| 52 | 0.000242 0.000201 0.002625 0.000054 0.000148 | ||
| 53 | 0.000296 0.000225 0.002934 0.000044 0.000134 | ||
| 54 | 0.000239 0.000245 0.003428 0.000046 0.000158 | ||
| 55 | 0.000261 0.000251 0.002569 0.000046 0.000139 | ||
| 56 | 0.000260 0.000230 0.002603 0.000045 0.000145 | ||
| 57 | 0.000302 0.000212 0.002580 0.000045 0.000176 | ||
| 58 | 0.000794 0.000197 0.002856 0.000046 0.000141 | ||
| 59 | 0.000273 0.000209 0.003173 0.000045 0.000217 | ||
| 60 | 0.000240 0.000201 0.002844 0.000043 0.000167 | ||
| 61 | 0.000389 0.000175 0.004315 0.000055 0.000091 | ||
| 62 | 0.000275 0.000534 0.004991 0.000053 0.000092 | ||
| 63 | 0.000229 0.000215 0.004084 0.000045 0.000074 | ||
| 64 | 0.000172 0.000474 0.002611 0.000043 0.000069 | ||
| 65 | 0.000201 0.000174 0.002485 0.000043 0.000069 | ||
| 66 | 0.000173 0.000220 0.002541 0.000045 0.000068 | ||
| 67 | 0.000167 0.000161 0.002827 0.000043 0.000071 | ||
| 68 | 0.000168 0.000160 0.003512 0.000068 0.000075 | ||
| 69 | 0.000211 0.000167 0.002530 0.000044 0.000069 | ||
| 70 | 0.000193 0.000230 0.003664 0.000046 0.000074 | ||
| 71 | 0.000171 0.000161 0.002575 0.000076 0.000075 | ||
| 72 | 0.000169 0.000161 0.002595 0.000044 0.000076 | ||
| 73 | 0.000981 0.000174 0.002556 0.000045 0.000072 | ||
| 74 | 0.000168 0.000163 0.002568 0.000043 0.000072 | ||
| 75 | 0.000163 0.000158 0.002579 0.000043 0.000386 | ||
| 76 | 0.000168 0.000160 0.002579 0.000059 0.000088 | ||
| 77 | 0.000176 0.000163 0.002559 0.000044 0.000075 | ||
| 78 | 0.000167 0.000161 0.002558 0.000043 0.000075 | ||
| 79 | 0.000169 0.000161 0.002599 0.000043 0.000095 | ||
| 80 | 0.000174 0.000163 0.002633 0.000046 0.000076 | ||
| 81 | 0.000170 0.000165 0.002576 0.000858 0.000079 | ||
| 82 | 0.000169 0.000162 0.002611 0.000044 0.000075 | ||
| 83 | 0.000170 0.000199 0.002621 0.000043 0.000074 | ||
| 84 | 0.000170 0.000167 0.003611 0.000043 0.000073 | ||
| 85 | 0.000171 0.000159 0.002764 0.000046 0.000076 | ||
| 86 | 0.000171 0.000165 0.002639 0.000044 0.000073 | ||
| 87 | 0.000168 0.000162 0.003131 0.000046 0.000075 | ||
| 88 | 0.000170 0.000162 0.002858 0.000044 0.000074 | ||
| 89 | 0.000171 0.000164 0.002841 0.000043 0.000075 | ||
| 90 | 0.000167 0.000161 0.002971 0.000043 0.000074 | ||
| 91 | 0.000170 0.000226 0.002842 0.000044 0.000074 | ||
| 92 | 0.000171 0.000165 0.002822 0.000044 0.000075 | ||
| 93 | 0.000173 0.000160 0.002895 0.000045 0.000073 | ||
| 94 | 0.000167 0.000217 0.002697 0.000044 0.000076 | ||
| 95 | 0.000170 0.000197 0.002699 0.000044 0.000075 | ||
| 96 | 0.000171 0.000163 0.003230 0.000045 0.000097 | ||
| 97 | 0.000170 0.000164 0.003167 0.000046 0.000082 | ||
| 98 | 0.000172 0.000196 0.002559 0.000043 0.000075 | ||
| 99 | 0.000168 0.000165 0.003006 0.000045 0.000075 | ||
| 100 | 0.000176 0.000160 0.002567 0.000043 0.000075 | ||
| 101 | 0.000167 0.000163 0.002757 0.000045 0.000076 | ||
| 102 | 0.000171 0.000162 0.002802 0.000045 0.000076 | ||
| 103 | 0.000169 0.000162 0.003102 0.000043 0.000072 | ||
| 104 | 0.000167 0.000162 0.002624 0.000043 0.000075 | ||
| 105 | 0.000170 0.000161 0.002589 0.000043 0.000072 | ||
| 106 | 0.000222 0.000253 0.002657 0.000045 0.000075 | ||
| 107 | 0.000172 0.000162 0.002586 0.000044 0.000084 | ||
| 108 | 0.000172 0.000165 0.002933 0.000044 0.000075 | ||
| 109 | 0.000169 0.000192 0.002609 0.000044 0.000074 | ||
| 110 | 0.000194 0.000162 0.003020 0.000045 0.000081 | ||
| 111 | 0.000170 0.000164 0.002908 0.000045 0.000076 | ||
| 112 | 0.000169 0.000163 0.002567 0.000042 0.000073 | ||
| 113 | 0.000167 0.000159 0.003071 0.000042 0.000074 | ||
| 114 | 0.000222 0.000163 0.003175 0.000043 0.000076 | ||
| 115 | 0.000167 0.000160 0.002641 0.000046 0.000099 | ||
| 116 | 0.000171 0.000168 0.002586 0.000057 0.000075 | ||
| 117 | 0.000170 0.000168 0.003148 0.000046 0.000075 | ||
| 118 | 0.000171 0.000159 0.002770 0.000041 0.000074 | ||
| 119 | 0.000173 0.000158 0.002643 0.000055 0.000077 | ||
| 120 | 0.000313 0.000174 0.002920 0.000045 0.000075 | ||
| 121 | 0.000170 0.000163 0.002551 0.000044 0.000072 | ||
| 122 | 0.000173 0.000161 0.002599 0.000045 0.000073 | ||
| 123 | 0.000167 0.000160 0.003505 0.000046 0.000075 | ||
| 124 | 0.000171 0.000161 0.002894 0.000045 0.000074 | ||
| 125 | 0.000171 0.000166 0.002572 0.000042 0.000073 | ||
| 126 | 0.000166 0.000160 0.004099 0.000044 0.000102 | ||
| 127 | 0.000181 0.000160 0.002499 0.000046 0.000071 | ||
| 128 | 0.000174 0.000175 0.002560 0.000043 0.000068 | ||
| 129 | 0.000165 0.000168 0.003083 0.000044 0.000070 | ||
| 130 | 0.000210 0.000163 0.002535 0.000040 0.000068 | ||
| 131 | 0.000164 0.000177 0.002906 0.000044 0.000075 | ||
| 132 | 0.000175 0.000227 0.002971 0.000043 0.000073 | ||
| 133 | 0.000167 0.000175 0.003409 0.000046 0.000078 | ||
| 134 | 0.000172 0.000166 0.002640 0.000046 0.000074 | ||
| 135 | 0.000177 0.000164 0.002574 0.000046 0.000076 | ||
| 136 | 0.000170 0.000163 0.002631 0.000046 0.000075 | ||
| 137 | 0.000216 0.000168 0.002596 0.000046 0.000076 | ||
| 138 | 0.000170 0.000163 0.002659 0.000045 0.000074 | ||
| 139 | 0.000172 0.000162 0.002677 0.000046 0.000075 | ||
| 140 | 0.000170 0.000159 0.002604 0.000044 0.000081 | ||
| 141 | 0.000171 0.000161 0.003163 0.000046 0.000076 | ||
| 142 | 0.000171 0.000162 0.002574 0.000313 0.000075 | ||
| 143 | 0.000170 0.000186 0.002988 0.000046 0.000074 | ||
| 144 | 0.000171 0.000162 0.002596 0.000043 0.000077 | ||
| 145 | 0.000168 0.000160 0.002640 0.000055 0.000074 | ||
| 146 | 0.000169 0.000161 0.002567 0.000043 0.000371 | ||
| 147 | 0.000170 0.000162 0.002704 0.000057 0.000078 | ||
| 148 | 0.000255 0.000185 0.002453 0.000293 0.000066 | ||
| 149 | 0.000148 0.000143 0.002169 0.000037 0.000066 | ||
| 150 | 0.000173 0.000141 0.002238 0.000039 0.000085 | ||
| 151 | 0.000154 0.000174 0.002679 0.000041 0.000065 | ||
| 152 | 0.000149 0.000144 0.002187 0.000037 0.000065 | ||
| 153 | 0.000146 0.000140 0.002760 0.000039 0.000071 | ||
| 154 | 0.000147 0.000151 0.002193 0.000039 0.000065 | ||
| 155 | 0.000150 0.000172 0.002207 0.000039 0.000067 | ||
| 156 | 0.000147 0.000141 0.002126 0.000037 0.000060 | ||
| 157 | 0.000191 0.000141 0.002119 0.000036 0.000086 | ||
| 158 | 0.000149 0.000144 0.002440 0.000039 0.000065 | ||
| 159 | 0.000148 0.000143 0.003287 0.000041 0.000068 | ||
| 160 | 0.000152 0.000149 0.002555 0.000040 0.000069 | ||
| 161 | 0.000148 0.000141 0.002203 0.000038 0.000065 | ||
| 162 | 0.000147 0.000139 0.002371 0.000052 0.000075 | ||
| 163 | 0.000148 0.000143 0.002201 0.000037 0.000066 | ||
| 164 | 0.000149 0.000140 0.002186 0.000038 0.000062 | ||
| 165 | 0.000152 0.000154 0.002215 0.000038 0.000062 | ||
| 166 | 0.000149 0.000144 0.002505 0.000039 0.000067 | ||
| 167 | 0.000148 0.000140 0.002216 0.000038 0.000101 | ||
| 168 | 0.000160 0.000144 0.002574 0.000039 0.000067 | ||
| 169 | 0.000150 0.000144 0.002266 0.000040 0.000068 | ||
| 170 | 0.000151 0.000142 0.003640 0.000040 0.000068 | ||
| 171 | 0.000150 0.000142 0.002207 0.000038 0.000066 | ||
| 172 | 0.000148 0.000140 0.002337 0.000041 0.000068 | ||
| 173 | 0.000151 0.000144 0.002138 0.000038 0.000063 | ||
| 174 | 0.000146 0.000178 0.002369 0.000039 0.000060 | ||
| 175 | 0.000150 0.000141 0.002290 0.000039 0.000067 | ||
| 176 | 0.000149 0.000143 0.002569 0.000050 0.000070 | ||
| 177 | 0.000149 0.000143 0.002797 0.000040 0.000068 | ||
| 178 | 0.000149 0.000143 0.002720 0.000039 0.000066 | ||
| 179 | 0.000273 0.000154 0.002255 0.000039 0.000066 | ||
| 180 | 0.000147 0.000141 0.002180 0.000037 0.000065 | ||
| 181 | 0.000884 0.000142 0.002164 0.000036 0.000060 | ||
| 182 | 0.000188 0.000143 0.002248 0.000039 0.000062 | ||
| 183 | 0.000148 0.000142 0.002178 0.000038 0.000064 | ||
| 184 | 0.000151 0.000140 0.002705 0.000038 0.000063 | ||
| 185 | 0.000145 0.000144 0.002588 0.000039 0.000064 | ||
| 186 | 0.000147 0.000142 0.002196 0.000037 0.000064 | ||
| 187 | 0.000147 0.000139 0.002169 0.000035 0.000060 | ||
| 188 | 0.000151 0.000894 0.002267 0.000039 0.000061 | ||
| 189 | 0.000152 0.000145 0.002178 0.000038 0.000061 | ||
| 190 | 0.000185 0.000142 0.002148 0.000036 0.000062 | ||
| 191 | 0.000147 0.000141 0.002845 0.000040 0.000065 | ||
| 192 | 0.000159 0.000178 0.002193 0.000039 0.000063 | ||
| 193 | 0.000145 0.000141 0.002571 0.000039 0.000066 | ||
| 194 | 0.000149 0.000141 0.003380 0.000038 0.000065 | ||
| 195 | 0.000200 0.000149 0.002439 0.000039 0.000066 | ||
| 196 | 0.000152 0.000140 0.002193 0.000037 0.000065 | ||
| 197 | 0.000147 0.000139 0.002239 0.000037 0.000066 | ||
| 198 | 0.000200 0.000143 0.002190 0.000039 0.000066 | ||
| 199 | 0.000147 0.000139 0.002243 0.000038 0.000062 | ||
| 200 | 0.000421 0.000144 0.002229 0.000038 0.000062 | ||
| 201 | 0.000147 0.000149 0.002715 0.000038 0.000063 | ||
| 202 | 0.000151 0.000176 0.002144 0.000036 0.000060 | ||
| 203 | 0.000145 0.000138 0.002184 0.000038 0.000064 | ||
| 204 | 0.000146 0.000207 0.002526 0.000040 0.000067 | ||
| 205 | 0.000163 0.000142 0.002366 0.000038 0.000070 | ||
| 206 | 0.000149 0.000143 0.002143 0.000038 0.000065 | ||
| 207 | 0.000150 0.000142 0.002146 0.000035 0.000059 | ||
| 208 | 0.000162 0.000147 0.002736 0.000038 0.000067 | ||
| 209 | 0.000149 0.000146 0.002383 0.000040 0.000071 | ||
| 210 | 0.000147 0.000139 0.002485 0.000038 0.000065 | ||
| 211 | 0.000147 0.000143 0.002811 0.000039 0.000098 | ||
| 212 | 0.000181 0.000142 0.002503 0.000039 0.000066 | ||
| 213 | 0.000150 0.000143 0.002227 0.000039 0.000065 | ||
| 214 | 0.000149 0.000143 0.002182 0.000036 0.000061 | ||
| 215 | 0.000148 0.000387 0.002159 0.000036 0.000059 | ||
| 216 | 0.000147 0.000173 0.002267 0.000039 0.000063 | ||
| 217 | 0.000147 0.000143 0.002729 0.000039 0.000066 | ||
| 218 | 0.000149 0.000142 0.002574 0.000040 0.000069 | ||
| 219 | 0.000149 0.000143 0.002560 0.000040 0.000068 | ||
| 220 | 0.000152 0.000141 0.002203 0.000038 0.000066 | ||
| 221 | 0.000151 0.000139 0.002234 0.000038 0.000087 | ||
| 222 | 0.000148 0.000140 0.002152 0.000036 0.000060 | ||
| 223 | 0.000185 0.000140 0.002274 0.000039 0.000063 | ||
| 224 | 0.000148 0.000144 0.002211 0.000038 0.000066 | ||
| 225 | 0.000149 0.000141 0.002692 0.000039 0.000066 | ||
| 226 | 0.000148 0.000145 0.002519 0.000039 0.000066 | ||
| 227 | 0.000147 0.000143 0.002188 0.000038 0.000066 | ||
| 228 | 0.000149 0.000171 0.002171 0.000038 0.000093 | ||
| 229 | 0.000150 0.000182 0.002185 0.000038 0.000068 | ||
| 230 | 0.000191 0.000154 0.002172 0.000037 0.000061 | ||
| 231 | 0.000145 0.000140 0.002253 0.000043 0.000065 | ||
| 232 | 0.000147 0.000139 0.002673 0.000038 0.000066 | ||
| 233 | 0.000191 0.000144 0.002740 0.000038 0.000066 | ||
| 234 | 0.000147 0.000142 0.002187 0.000038 0.000064 | ||
| 235 | 0.000146 0.000181 0.002180 0.000038 0.000066 | ||
| 236 | 0.000176 0.000142 0.002152 0.000039 0.000061 | ||
| 237 | 0.000149 0.000142 0.002164 0.000037 0.000064 | ||
| 238 | 0.000245 0.000150 0.002771 0.000055 0.000084 | ||
| 239 | 0.000149 0.000145 0.003006 0.000040 0.000069 | ||
| 240 | 0.000153 0.000144 0.002701 0.000040 0.000067 | ||
| 241 | 0.000149 0.000144 0.002192 0.000038 0.000065 | ||
| 242 | 0.000148 0.000143 0.002220 0.000038 0.000063 | ||
| 243 | 0.000146 0.000140 0.002210 0.000038 0.000062 | ||
| 244 | 0.000157 0.000144 0.002174 0.000038 0.000060 | ||
| 245 | 0.000148 0.000171 0.002208 0.000039 0.000061 | ||
| 246 | 0.000146 0.000141 0.002685 0.000039 0.000064 | ||
| 247 | 0.000146 0.000139 0.002811 0.000038 0.000064 | ||
| 248 | 0.000147 0.000140 0.002234 0.000037 0.000063 | ||
| 249 | 0.000143 0.000143 0.002209 0.000040 0.000066 | ||
| 250 | 0.000149 0.000144 0.002162 0.000037 0.000091 | ||
| 251 | 0.000408 0.000141 0.002140 0.000036 0.000060 | ||
| 252 | 0.000142 0.000149 0.002208 0.000132 0.000061 | ||
| 253 | 0.000148 0.000142 0.002706 0.000040 0.000066 | ||
| 254 | 0.000148 0.000142 0.002502 0.000039 0.000065 | ||
| 255 | 0.000176 0.000144 0.002265 0.000039 0.000066 | ||
| 256 | 0.000150 0.000142 0.002199 0.000039 0.000065 | ||
| 257 | 0.000147 0.000154 0.002201 0.000040 0.000067 | ||
| 258 | 0.000150 0.000142 0.002164 0.000036 0.000094 | ||
| 259 | 0.000183 0.000177 0.002253 0.000039 0.000063 | ||
| 260 | 0.000189 0.000143 0.002480 0.000039 0.000066 | ||
| 261 | 0.000148 0.000141 0.002212 0.000037 0.000064 | ||
| 262 | 0.000150 0.000137 0.002192 0.000037 0.000065 | ||
| 263 | 0.000144 0.000140 0.002271 0.000039 0.000062 | ||
| 264 | 0.000190 0.000171 0.002145 0.000037 0.000061 | ||
| 265 | 0.000146 0.000141 0.005865 0.000099 0.000083 | ||
| 266 | 0.000178 0.000165 0.002792 0.000040 0.000066 | ||
| 267 | 0.000148 0.000233 0.002742 0.000039 0.000079 | ||
| 268 | 0.000157 0.000151 0.002225 0.000039 0.000066 | ||
| 269 | 0.000149 0.000142 0.002215 0.000039 0.000081 | ||
| 270 | 0.000165 0.000141 0.002239 0.000039 0.000081 | ||
| 271 | 0.000150 0.000154 0.002154 0.000036 0.000060 | ||
| 272 | 0.000152 0.000151 0.002216 0.000039 0.000075 | ||
| 273 | 0.000172 0.000141 0.004471 0.000060 0.000092 | ||
| 274 | 0.000250 0.000210 0.002881 0.000040 0.000066 | ||
| 275 | 0.000176 0.000152 0.002262 0.000038 0.000337 | ||
| 276 | 0.000164 0.000154 0.002485 0.000039 0.000074 | ||
| 277 | 0.000149 0.000180 0.002148 0.000039 0.000078 | ||
| 278 | 0.000194 0.000145 0.002345 0.000044 0.000064 | ||
| 279 | 0.000164 0.000201 0.002483 0.000040 0.000062 | ||
| 280 | 0.000148 0.000140 0.002249 0.000038 0.000076 | ||
| 281 | 0.000155 0.000144 0.002504 0.000039 0.000067 | ||
| 282 | 0.000166 0.000150 0.002780 0.000040 0.000079 | ||
| 283 | 0.000150 0.000142 0.002194 0.000038 0.000086 | ||
| 284 | 0.000178 0.000153 0.002360 0.000039 0.000079 | ||
| 285 | 0.000160 0.000154 0.002159 0.000036 0.000079 | ||
| 286 | 0.000195 0.000445 0.002203 0.000038 0.000074 | ||
| 287 | 0.000171 0.000161 0.002220 0.000038 0.000087 | ||
| 288 | 0.000165 0.000151 0.002231 0.000038 0.000088 | ||
| 289 | 0.000149 0.000141 0.003445 0.000040 0.000068 | ||
| 290 | 0.000148 0.000143 0.002465 0.000039 0.000081 | ||
| 291 | 0.000165 0.000150 0.002228 0.000038 0.000067 | ||
| 292 | 0.000160 0.000142 0.003231 0.000039 0.000066 | ||
| 293 | 0.000149 0.000141 0.002215 0.000038 0.000078 | ||
| 294 | 0.000146 0.000152 0.002152 0.000038 0.000077 | ||
| 295 | 0.000168 0.000140 0.002258 0.000040 0.000076 | ||
| 296 | 0.000193 0.000142 0.002266 0.000039 0.000085 | ||
| 297 | 0.000261 0.000164 0.002160 0.000037 0.000061 | ||
| 298 | 0.000151 0.000419 0.002217 0.000037 0.000073 | ||
| 299 | 0.000163 0.000148 0.002856 0.000038 0.000106 | ||
| 300 | 0.000258 0.000204 0.002267 0.000040 0.000075 | ||
| 301 | 0.000178 0.000159 0.002266 0.000038 0.000070 | ||
| 302 | 0.000158 0.000149 0.002665 0.000039 0.000085 | ||
| 303 | 0.000164 0.000154 0.002478 0.000039 0.000077 | ||
| 304 | 0.000148 0.000140 0.002459 0.000038 0.000066 | ||
| 305 | 0.000161 0.000142 0.002206 0.000038 0.000074 | ||
| 306 | 0.000155 0.000151 0.002230 0.000039 0.000083 | ||
| 307 | 0.000161 0.000142 0.002225 0.000037 0.000072 | ||
| 308 | 0.000161 0.000187 0.002450 0.000038 0.000063 | ||
| 309 | 0.000145 0.000155 0.002438 0.000039 0.000079 | ||
| 310 | 0.000166 0.000138 0.002296 0.000039 0.000076 | ||
| 311 | 0.000170 0.000156 0.002446 0.000038 0.000078 | ||
| 312 | 0.000160 0.000159 0.002211 0.000038 0.000078 | ||
| 313 | 0.000159 0.000142 0.002190 0.000036 0.000110 | ||
| 314 | 0.000157 0.000150 0.002336 0.000039 0.000073 | ||
| 315 | 0.000165 0.000182 0.002132 0.000038 0.000072 | ||
| 316 | 0.000160 0.000140 0.002641 0.000066 0.000066 | ||
| 317 | 0.000147 0.000153 0.002153 0.000039 0.000080 | ||
| 318 | 0.000148 0.000156 0.002165 0.000037 0.000077 | ||
| 319 | 0.000147 0.000151 0.002201 0.000038 0.000067 | ||
| 320 | 0.000162 0.000143 0.002216 0.000040 0.000080 | ||
| 321 | 0.000165 0.000148 0.002223 0.000055 0.000080 | ||
| 322 | 0.000193 0.000143 0.002155 0.000037 0.000078 | ||
| 323 | 0.000165 0.000143 0.003005 0.000040 0.000067 | ||
| 324 | 0.000151 0.000145 0.002511 0.000039 0.000070 | ||
| 325 | 0.000149 0.000173 0.002246 0.000039 0.000066 | ||
| 326 | 0.000148 0.000143 0.002808 0.000040 0.000067 | ||
| 327 | 0.000148 0.000142 0.002513 0.000038 0.000066 | ||
| 328 | 0.000148 0.000143 0.002203 0.000037 0.000065 | ||
| 329 | 0.000146 0.000138 0.002123 0.000038 0.000061 | ||
| 330 | 0.000170 0.000149 0.002165 0.000036 0.000062 | ||
| 331 | 0.000144 0.000145 0.002186 0.000037 0.000059 | ||
| 332 | 0.000144 0.000139 0.002520 0.000037 0.000065 | ||
| 333 | 0.000146 0.000139 0.002559 0.000038 0.000066 | ||
| 334 | 0.000153 0.000142 0.002537 0.000038 0.000067 | ||
| 335 | 0.000168 0.000144 0.002217 0.000048 0.000066 | ||
| 336 | 0.000147 0.000141 0.002120 0.000037 0.000063 | ||
| 337 | 0.000188 0.001725 0.002541 0.000040 0.000067 | ||
| 338 | 0.000149 0.000143 0.002229 0.000038 0.000076 | ||
| 339 | 0.000147 0.000143 0.002233 0.000037 0.000062 | ||
| 340 | 0.000182 0.000142 0.002150 0.000037 0.000061 | ||
| 341 | 0.000148 0.000140 0.002196 0.000037 0.000065 | ||
| 342 | 0.000145 0.000140 0.002473 0.000037 0.000065 | ||
| 343 | 0.000147 0.000139 0.002725 0.000040 0.000067 | ||
| 344 | 0.000149 0.000142 0.002217 0.000039 0.000065 | ||
| 345 | 0.000146 0.000140 0.002167 0.000037 0.000061 | ||
| 346 | 0.000176 0.000144 0.002415 0.000039 0.000064 | ||
| 347 | 0.000171 0.000144 0.002925 0.000040 0.000068 | ||
| 348 | 0.000152 0.000167 0.002190 0.000039 0.000066 | ||
| 349 | 0.000149 0.000142 0.002530 0.000039 0.000067 | ||
| 350 | 0.000150 0.000142 0.003059 0.000040 0.000068 | ||
| 351 | 0.000149 0.000142 0.002417 0.000038 0.000072 | ||
| 352 | 0.000149 0.000143 0.002569 0.000038 0.000068 | ||
| 353 | 0.000148 0.000141 0.002262 0.000040 0.000068 | ||
| 354 | 0.000152 0.000144 0.002253 0.000038 0.000066 | ||
| 355 | 0.000149 0.000142 0.002134 0.000037 0.000061 | ||
| 356 | 0.000277 0.000427 0.002186 0.000036 0.000060 | ||
| 357 | 0.000145 0.000139 0.002791 0.000039 0.000065 | ||
| 358 | 0.000149 0.000144 0.002238 0.000039 0.000066 | ||
| 359 | 0.000147 0.000144 0.002514 0.000039 0.000066 | ||
| 360 | 0.000148 0.000143 0.002683 0.000038 0.000063 | ||
| 361 | 0.000147 0.000139 0.002214 0.000037 0.000068 | ||
| 362 | 0.000145 0.000139 0.002149 0.000036 0.000059 | ||
| 363 | 0.000185 0.000139 0.002214 0.000037 0.000060 | ||
| 364 | 0.000145 0.000140 0.003549 0.000039 0.000066 | ||
| 365 | 0.000187 0.000142 0.002160 0.000037 0.000059 | ||
| 366 | 0.000147 0.000158 0.002212 0.000038 0.000065 | ||
| 367 | 0.000148 0.000140 0.002483 0.000039 0.000067 | ||
| 368 | 0.000147 0.000142 0.003034 0.000039 0.000066 | ||
| 369 | 0.000148 0.000142 0.002228 0.000039 0.000066 | ||
| 370 | 0.000145 0.000151 0.002225 0.000040 0.000067 | ||
| 371 | 0.000149 0.000142 0.002858 0.000048 0.000083 | ||
| 372 | 0.000203 0.000185 0.004022 0.000049 0.000086 | ||
| 373 | 0.000212 0.000188 0.005086 0.000056 0.000093 | ||
| 374 | 0.000220 0.000203 0.004209 0.000051 0.000085 | ||
| 375 | 0.000208 0.000247 0.009261 0.000098 0.000089 | ||
| 376 | 0.000211 0.000262 0.002546 0.000041 0.000066 | ||
| 377 | 0.000198 0.000150 0.002534 0.000039 0.000079 | ||
| 378 | 0.000159 0.000143 0.002207 0.000038 0.000094 | ||
| 379 | 0.000157 0.000143 0.002173 0.000038 0.000062 | ||
| 380 | 0.000198 0.000505 0.002157 0.000039 0.000079 | ||
| 381 | 0.000164 0.000143 0.002172 0.000038 0.000076 | ||
| 382 | 0.000156 0.000148 0.002259 0.000039 0.000080 | ||
| 383 | 0.000161 0.000142 0.002219 0.000039 0.000076 | ||
| 384 | 0.000161 0.000143 0.002266 0.000039 0.000085 | ||
| 385 | 0.000161 0.000141 0.002150 0.000036 0.000077 | ||
| 386 | 0.000179 0.000140 0.002140 0.000036 0.000071 | ||
| 387 | 0.000157 0.000151 0.002316 0.000040 0.000079 | ||
| 388 | 0.000149 0.000143 0.002269 0.000039 0.000066 | ||
| 389 | 0.000161 0.000142 0.002206 0.000040 0.000091 | ||
| 390 | 0.000172 0.000143 0.002244 0.000039 0.000067 | ||
| 391 | 0.000168 0.000142 0.002189 0.000039 0.000083 | ||
| 392 | 0.000163 0.000188 0.002156 0.000037 0.000077 | ||
| 393 | 0.000168 0.000143 0.002266 0.000039 0.000084 | ||
| 394 | 0.000166 0.000147 0.002205 0.000325 0.000078 | ||
| 395 | 0.000175 0.000140 0.002173 0.000037 0.000106 | ||
| 396 | 0.000170 0.000153 0.002158 0.000036 0.000083 | ||
| 397 | 0.000168 0.000147 0.002825 0.000039 0.000108 | ||
| 398 | 0.000172 0.000151 0.002483 0.000038 0.000085 | ||
| 399 | 0.000160 0.000143 0.002163 0.000038 0.000066 | ||
| 400 | 0.000161 0.000154 0.002493 0.000039 0.000084 | ||
| 401 | 0.000167 0.000153 0.002564 0.000040 0.000082 | ||
| 402 | 0.000159 0.000151 0.002185 0.000046 0.000088 | ||
| 403 | 0.000157 0.000156 0.002175 0.000039 0.000076 | ||
| 404 | 0.000150 0.000144 0.002151 0.000038 0.000063 | ||
| 405 | 0.000160 0.000140 0.002429 0.000038 0.000064 | ||
| 406 | 0.000160 0.000154 0.002184 0.000048 0.000077 | ||
| 407 | 0.000168 0.000142 0.002686 0.000040 0.000119 | ||
| 408 | 0.000164 0.000152 0.002279 0.000039 0.000075 | ||
| 409 | 0.000161 0.000143 0.002192 0.000068 0.000067 | ||
| 410 | 0.000161 0.000154 0.002190 0.000040 0.000092 | ||
| 411 | 0.000246 0.000146 0.003064 0.000038 0.000072 | ||
| 412 | 0.000163 0.000158 0.002171 0.000037 0.000073 | ||
| 413 | 0.000216 0.000144 0.002209 0.000039 0.000115 | ||
| 414 | 0.000159 0.000141 0.003338 0.000039 0.000079 | ||
| 415 | 0.000277 0.000158 0.002464 0.000039 0.000082 | ||
| 416 | 0.000168 0.000150 0.002227 0.000037 0.000079 | ||
| 417 | 0.000168 0.000146 0.002775 0.000038 0.000077 | ||
| 418 | 0.000146 0.000147 0.002694 0.000042 0.000084 | ||
| 419 | 0.000160 0.000145 0.002807 0.000039 0.000066 | ||
| 420 | 0.000162 0.000177 0.002187 0.000063 0.000066 | ||
| 421 | 0.000147 0.000141 0.002220 0.000038 0.000085 | ||
| 422 | 0.000160 0.000142 0.002216 0.000037 0.000077 | ||
| 423 | 0.000166 0.000159 0.002224 0.000039 0.000108 | ||
| 424 | 0.000147 0.000141 0.002746 0.000039 0.000078 | ||
| 425 | 0.000159 0.000141 0.002194 0.000037 0.000063 | ||
| 426 | 0.000164 0.000143 0.002164 0.000039 0.000067 | ||
| 427 | 0.000169 0.000152 0.002278 0.000074 0.000088 | ||
| 428 | 0.000157 0.000157 0.002155 0.000068 0.000076 | ||
| 429 | 0.000159 0.000140 0.002170 0.000035 0.000078 | ||
| 430 | 0.000156 0.000141 0.002299 0.000040 0.000066 | ||
| 431 | 0.000192 0.000160 0.002241 0.000039 0.000082 | ||
| 432 | 0.000149 0.000143 0.002288 0.000039 0.000079 | ||
| 433 | 0.000161 0.000142 0.002185 0.000049 0.000077 | ||
| 434 | 0.000147 0.000149 0.002284 0.000039 0.000063 | ||
| 435 | 0.000456 0.000144 0.002203 0.000046 0.000064 | ||
| 436 | 0.000187 0.000144 0.002147 0.000037 0.000061 | ||
| 437 | 0.000147 0.000140 0.002238 0.000040 0.000067 | ||
| 438 | 0.000147 0.000140 0.003077 0.000041 0.000068 | ||
| 439 | 0.000151 0.000142 0.002226 0.000038 0.000065 | ||
| 440 | 0.000146 0.000142 0.002188 0.000039 0.000065 | ||
| 441 | 0.000145 0.000141 0.002156 0.000036 0.000061 | ||
| 442 | 0.000143 0.000172 0.002379 0.000037 0.000060 | ||
| 443 | 0.000152 0.000231 0.002172 0.000038 0.000065 | ||
| 444 | 0.000153 0.000142 0.002181 0.000039 0.000065 | ||
| 445 | 0.000148 0.000142 0.002567 0.000039 0.000067 | ||
| 446 | 0.000150 0.000142 0.002177 0.000038 0.000072 | ||
| 447 | 0.000147 0.000146 0.002328 0.000038 0.000063 | ||
| 448 | 0.000146 0.000150 0.002211 0.000038 0.000063 | ||
| 449 | 0.000149 0.000143 0.002222 0.000040 0.000072 | ||
| 450 | 0.000150 0.000144 0.002455 0.000039 0.000065 | ||
| 451 | 0.000147 0.000144 0.002206 0.000039 0.000066 | ||
| 452 | 0.000145 0.000141 0.002153 0.000055 0.000070 | ||
| 453 | 0.000443 0.000144 0.002139 0.000036 0.000069 | ||
| 454 | 0.000147 0.000182 0.002188 0.000037 0.000061 | ||
| 455 | 0.000146 0.000138 0.002248 0.000038 0.000067 | ||
| 456 | 0.000147 0.000142 0.002817 0.000039 0.000067 | ||
| 457 | 0.000148 0.000144 0.002230 0.000038 0.000066 | ||
| 458 | 0.000148 0.000142 0.002239 0.000039 0.000067 | ||
| 459 | 0.000149 0.000142 0.002197 0.000038 0.000063 | ||
| 460 | 0.000181 0.000674 0.002170 0.000038 0.000061 | ||
| 461 | 0.000146 0.000195 0.002204 0.000037 0.000061 | ||
| 462 | 0.000146 0.000141 0.002260 0.000039 0.000067 | ||
| 463 | 0.000150 0.000142 0.002193 0.000045 0.000065 | ||
| 464 | 0.000147 0.000140 0.002229 0.000036 0.000066 | ||
| 465 | 0.000146 0.000137 0.002197 0.000037 0.000062 | ||
| 466 | 0.000152 0.000159 0.002187 0.000036 0.000060 | ||
| 467 | 0.000145 0.000139 0.002224 0.000037 0.000064 | ||
| 468 | 0.000149 0.000144 0.002175 0.000038 0.000066 | ||
| 469 | 0.000150 0.000143 0.002187 0.000038 0.000066 | ||
| 470 | 0.000148 0.000141 0.002152 0.000036 0.000061 | ||
| 471 | 0.000185 0.000141 0.002176 0.000036 0.000064 | ||
| 472 | 0.000169 0.000145 0.002483 0.000038 0.000067 | ||
| 473 | 0.000149 0.000141 0.002225 0.000036 0.000064 | ||
| 474 | 0.000244 0.000149 0.002538 0.000038 0.000065 | ||
| 475 | 0.000156 0.000143 0.002317 0.000039 0.000297 | ||
| 476 | 0.000228 0.000172 0.002222 0.000039 0.000300 | ||
| 477 | 0.000149 0.000145 0.002173 0.000040 0.000066 | ||
| 478 | 0.000154 0.000145 0.002155 0.000038 0.000093 | ||
| 479 | 0.000161 0.000145 0.002178 0.000039 0.000063 | ||
| 480 | 0.000147 0.000170 0.002299 0.000039 0.000066 | ||
| 481 | 0.000149 0.000142 0.003494 0.000040 0.000066 | ||
| 482 | 0.000149 0.000178 0.002237 0.000038 0.000062 | ||
| 483 | 0.000148 0.000143 0.002150 0.000037 0.000064 | ||
| 484 | 0.000146 0.000139 0.002315 0.000038 0.000065 | ||
| 485 | 0.000147 0.000141 0.002269 0.000039 0.000067 | ||
| 486 | 0.000173 0.000145 0.002191 0.000037 0.000065 | ||
| 487 | 0.000166 0.000144 0.002247 0.000038 0.000061 | ||
| 488 | 0.000146 0.000140 0.002551 0.000038 0.000065 | ||
| 489 | 0.000148 0.000175 0.002202 0.000037 0.000064 | ||
| 490 | 0.000145 0.000141 0.002217 0.000038 0.000063 | ||
| 491 | 0.000146 0.000138 0.002164 0.000132 0.000547 | ||
| 492 | 0.000148 0.000144 0.008140 0.000160 0.000893 | ||
| 493 | 0.000311 0.000221 0.004526 0.000058 0.000109 | ||
| 494 | 0.000238 0.000225 0.003475 0.000044 0.000094 | ||
| 495 | 0.000178 0.000177 0.002537 0.000041 0.000087 | ||
| 496 | 0.000172 0.000161 0.002194 0.000048 0.000084 | ||
| 497 | 0.000172 0.000163 0.002177 0.000040 0.000084 | ||
| 498 | 0.001177 0.000156 0.002351 0.000041 0.000325 | ||
| 499 | 0.000167 0.000163 0.002273 0.000040 0.000088 | ||
| 500 | 0.000170 0.000151 0.002245 0.000040 0.000077 | ||
| 501 | 0.000172 0.000896 0.002181 0.000038 0.000080 | ||
| 502 | 0.000202 0.000164 0.002449 0.000038 0.000076 | ||
| 503 | 0.000162 0.000161 0.002188 0.000037 0.000078 | ||
| 504 | 0.000165 0.000154 0.002440 0.000074 0.000091 | ||
| 505 | 0.000167 0.000149 0.002185 0.000039 0.000081 | ||
| 506 | 0.000176 0.000154 0.002427 0.000040 0.000093 | ||
| 507 | 0.000168 0.000154 0.002304 0.000038 0.000105 | ||
| 508 | 0.000672 0.000160 0.002260 0.000038 0.000088 | ||
| 509 | 0.000686 0.000159 0.002207 0.000038 0.000084 | ||
| 510 | 0.000163 0.000154 0.002186 0.000037 0.000077 | ||
| 511 | 0.000173 0.000153 0.002399 0.000038 0.000082 | ||
| 512 | 0.000166 0.000157 0.002709 0.000039 0.000077 | ||
| 513 | 0.000155 0.000149 0.002143 0.000038 0.000097 | ||
| 514 | 0.000166 0.000154 0.003454 0.000051 0.000106 | ||
| 515 | 0.000166 0.000160 0.002539 0.000039 0.000128 | ||
| 516 | 0.000169 0.000149 0.002307 0.000039 0.000085 | ||
| 517 | 0.000170 0.000158 0.002225 0.000040 0.000088 | ||
| 518 | 0.000170 0.000180 0.002165 0.000036 0.000103 | ||
| 519 | 0.000203 0.000160 0.002345 0.000039 0.000075 | ||
| 520 | 0.000173 0.000191 0.002160 0.000038 0.000074 | ||
| 521 | 0.000165 0.000156 0.002243 0.000039 0.000085 | ||
| 522 | 0.000172 0.000154 0.002260 0.000040 0.000090 | ||
| 523 | 0.000163 0.000164 0.002258 0.000040 0.000085 | ||
| 524 | 0.000168 0.000143 0.002755 0.000039 0.000086 | ||
| 525 | 0.000178 0.000155 0.002202 0.000039 0.000075 | ||
| 526 | 0.000164 0.000153 0.002267 0.000038 0.000081 | ||
| 527 | 0.000161 0.000154 0.002158 0.000036 0.000090 | ||
| 528 | 0.000169 0.000158 0.002454 0.000037 0.000061 | ||
| 529 | 0.000162 0.000154 0.002543 0.000038 0.000091 | ||
| 530 | 0.000170 0.000154 0.002168 0.000037 0.000085 | ||
| 531 | 0.000166 0.000151 0.002852 0.000038 0.000087 | ||
| 532 | 0.000167 0.000165 0.002484 0.000039 0.000089 | ||
| 533 | 0.000374 0.000197 0.002217 0.000038 0.000082 | ||
| 534 | 0.000156 0.000150 0.002213 0.000038 0.000112 | ||
| 535 | 0.000683 0.000155 0.002131 0.000038 0.000077 | ||
| 536 | 0.000162 0.000164 0.002199 0.000038 0.000076 | ||
| 537 | 0.000176 0.000154 0.002345 0.000038 0.000089 | ||
| 538 | 0.000175 0.000150 0.002928 0.000039 0.000082 | ||
| 539 | 0.000161 0.000140 0.002528 0.000039 0.000066 | ||
| 540 | 0.000159 0.000151 0.002256 0.000039 0.000075 | ||
| 541 | 0.000155 0.000156 0.002233 0.000040 0.000066 | ||
| 542 | 0.000171 0.000156 0.002149 0.000066 0.000084 | ||
| 543 | 0.000182 0.000154 0.002233 0.000037 0.000117 | ||
| 544 | 0.000166 0.000160 0.002460 0.000037 0.000088 | ||
| 545 | 0.000159 0.000165 0.002891 0.000043 0.000075 | ||
| 546 | 0.000169 0.000143 0.002383 0.000038 0.000084 | ||
| 547 | 0.000162 0.000149 0.002313 0.000039 0.000078 | ||
| 548 | 0.000166 0.000161 0.003837 0.000041 0.000092 | ||
| 549 | 0.000166 0.000144 0.002389 0.000038 0.000078 | ||
| 550 | 0.000185 0.000153 0.002548 0.000040 0.000090 | ||
| 551 | 0.000166 0.000152 0.002943 0.000037 0.000063 | ||
| 552 | 0.000147 0.000140 0.002284 0.000038 0.000066 | ||
| 553 | 0.000145 0.000141 0.002555 0.000038 0.000071 | ||
| 554 | 0.000189 0.000143 0.002235 0.000038 0.000359 | ||
| 555 | 0.000149 0.000140 0.002779 0.000053 0.000089 | ||
| 556 | 0.000211 0.000206 0.002744 0.000040 0.000067 | ||
| 557 | 0.000150 0.000144 0.002471 0.000039 0.000065 | ||
| 558 | 0.000151 0.000140 0.002563 0.000040 0.000064 | ||
| 559 | 0.000148 0.000138 0.002305 0.000039 0.000066 | ||
| 560 | 0.000148 0.000141 0.002162 0.000036 0.000060 | ||
| 561 | 0.000182 0.000145 0.002403 0.000042 0.000063 | ||
| 562 | 0.000152 0.000141 0.002311 0.000039 0.000065 | ||
| 563 | 0.000148 0.000180 0.002192 0.000038 0.000065 | ||
| 564 | 0.000149 0.000141 0.002516 0.000039 0.000066 | ||
| 565 | 0.000147 0.000142 0.002193 0.000040 0.000064 | ||
| 566 | 0.000146 0.000138 0.002194 0.000036 0.000060 | ||
| 567 | 0.000197 0.000142 0.002291 0.000038 0.000063 | ||
| 568 | 0.000148 0.000142 0.002440 0.000039 0.000066 | ||
| 569 | 0.000148 0.000143 0.002228 0.000039 0.000066 | ||
| 570 | 0.000149 0.000140 0.002216 0.000038 0.000067 | ||
| 571 | 0.000148 0.000145 0.002196 0.000038 0.000066 | ||
| 572 | 0.000148 0.000141 0.002157 0.000036 0.000061 | ||
| 573 | 0.000144 0.000175 0.002491 0.000039 0.000063 | ||
| 574 | 0.000147 0.000141 0.002290 0.000039 0.000066 | ||
| 575 | 0.000149 0.000143 0.002508 0.000039 0.000067 | ||
| 576 | 0.000149 0.000142 0.002536 0.000039 0.000067 | ||
| 577 | 0.000150 0.000141 0.003132 0.000046 0.000070 | ||
| 578 | 0.000153 0.000145 0.002202 0.000039 0.000067 | ||
| 579 | 0.000149 0.000143 0.002102 0.000037 0.000067 | ||
| 580 | 0.000989 0.000142 0.002188 0.000063 0.000068 | ||
| 581 | 0.000151 0.000142 0.002229 0.000038 0.000068 | ||
| 582 | 0.001481 0.000141 0.002238 0.000039 0.000070 | ||
| 583 | 0.000148 0.000142 0.002204 0.000037 0.000093 | ||
| 584 | 0.000160 0.000141 0.002138 0.000038 0.000062 | ||
| 585 | 0.000145 0.000141 0.002708 0.000039 0.000065 | ||
| 586 | 0.000147 0.000142 0.002218 0.000039 0.000067 | ||
| 587 | 0.000148 0.000140 0.002759 0.000038 0.000066 | ||
| 588 | 0.000148 0.000139 0.003156 0.000037 0.000067 | ||
| 589 | 0.000185 0.000141 0.002259 0.000040 0.000066 | ||
| 590 | 0.000148 0.000142 0.002226 0.000047 0.000068 | ||
| 591 | 0.000148 0.000142 0.002305 0.000040 0.000090 | ||
| 592 | 0.001000 0.000155 0.002217 0.000064 0.000068 | ||
| 593 | 0.000154 0.000144 0.002554 0.000038 0.000065 | ||
| 594 | 0.000148 0.000141 0.002151 0.000038 0.000066 | ||
| 595 | 0.000146 0.000181 0.003031 0.000039 0.000062 | ||
| 596 | 0.000146 0.000180 0.002254 0.000039 0.000061 | ||
| 597 | 0.000147 0.000143 0.002188 0.000039 0.000065 | ||
| 598 | 0.000147 0.000140 0.002259 0.000039 0.000063 | ||
| 599 | 0.000146 0.000141 0.002238 0.000038 0.000076 | ||
| 600 | 0.000148 0.000141 0.002163 0.000038 0.000061 | ||
| 601 | 0.000153 0.000143 0.002195 0.000043 0.000072 | ||
| 602 | 0.000149 0.000177 0.003291 0.000039 0.000063 | ||
| 603 | 0.000258 0.000153 0.002150 0.000039 0.000066 | ||
| 604 | 0.000157 0.000144 0.002155 0.000037 0.000060 | ||
| 605 | 0.000160 0.001194 0.002269 0.000040 0.000100 | ||
| 606 | 0.000164 0.000151 0.002162 0.000038 0.000078 | ||
| 607 | 0.000163 0.000424 0.002178 0.000036 0.000069 | ||
| 608 | 0.001333 0.000389 0.002249 0.000039 0.000066 | ||
| 609 | 0.000175 0.000142 0.002208 0.000037 0.000102 | ||
| 610 | 0.000443 0.000156 0.002249 0.000040 0.000062 | ||
| 611 | 0.000244 0.001562 0.003049 0.000041 0.000083 | ||
| 612 | 0.000208 0.000183 0.002483 0.000040 0.000068 | ||
| 613 | 0.000164 0.000156 0.002220 0.000040 0.000078 | ||
| 614 | 0.000169 0.000142 0.002694 0.000040 0.000083 | ||
| 615 | 0.000162 0.000152 0.002453 0.000038 0.000077 | ||
| 616 | 0.000157 0.000189 0.002306 0.000040 0.000077 | ||
| 617 | 0.000162 0.000151 0.002200 0.000039 0.000325 | ||
| 618 | 0.000150 0.000142 0.002251 0.000039 0.000066 | ||
| 619 | 0.000172 0.000157 0.002184 0.000039 0.000073 | ||
| 620 | 0.000160 0.000150 0.002678 0.000038 0.000326 | ||
| 621 | 0.000165 0.000151 0.002292 0.000038 0.000094 | ||
| 622 | 0.000162 0.000156 0.002203 0.000037 0.000083 | ||
| 623 | 0.000170 0.000141 0.002175 0.000037 0.000074 | ||
| 624 | 0.000149 0.000166 0.002235 0.000039 0.000071 | ||
| 625 | 0.000161 0.000143 0.002423 0.000036 0.000180 | ||
| 626 | 0.000164 0.000152 0.003095 0.000039 0.000076 | ||
| 627 | 0.000172 0.000153 0.002466 0.000039 0.000115 | ||
| 628 | 0.000151 0.000153 0.002274 0.000039 0.000066 | ||
| 629 | 0.000150 0.000142 0.003179 0.000040 0.000080 | ||
| 630 | 0.000172 0.000159 0.002421 0.000039 0.000083 | ||
| 631 | 0.000159 0.000142 0.002165 0.000037 0.000068 | ||
| 632 | 0.000155 0.000150 0.002233 0.000041 0.000123 | ||
| 633 | 0.000153 0.000158 0.002253 0.000039 0.000571 | ||
| 634 | 0.000203 0.000145 0.002269 0.000041 0.000077 | ||
| 635 | 0.000164 0.000158 0.002176 0.000038 0.000086 | ||
| 636 | 0.000197 0.000144 0.002220 0.000041 0.000080 | ||
| 637 | 0.000174 0.000403 0.002224 0.000039 0.000063 | ||
| 638 | 0.000218 0.000144 0.002150 0.000036 0.000069 | ||
| 639 | 0.000149 0.000141 0.002479 0.000040 0.000079 | ||
| 640 | 0.000163 0.000145 0.002664 0.000039 0.000082 | ||
| 641 | 0.000150 0.000152 0.002446 0.000040 0.000069 | ||
| 642 | 0.000203 0.000154 0.002205 0.000043 0.000077 | ||
| 643 | 0.000160 0.000143 0.002210 0.000039 0.000087 | ||
| 644 | 0.000194 0.000145 0.002167 0.000038 0.000069 | ||
| 645 | 0.000151 0.000154 0.002137 0.000036 0.000079 | ||
| 646 | 0.000162 0.000140 0.002697 0.000037 0.000085 | ||
| 647 | 0.000162 0.000143 0.002233 0.000039 0.000076 | ||
| 648 | 0.000148 0.000144 0.002210 0.000039 0.000065 | ||
| 649 | 0.000151 0.000152 0.003015 0.000041 0.000084 | ||
| 650 | 0.000158 0.000156 0.002730 0.000039 0.000079 | ||
| 651 | 0.000312 0.000165 0.002207 0.000038 0.000076 | ||
| 652 | 0.000167 0.000139 0.002297 0.000040 0.000065 | ||
| 653 | 0.000172 0.000154 0.002205 0.000037 0.000080 | ||
| 654 | 0.000146 0.000149 0.002286 0.000039 0.000076 | ||
| 655 | 0.000164 0.000151 0.002214 0.000038 0.000073 | ||
| 656 | 0.000162 0.000169 0.003110 0.000038 0.000067 | ||
| 657 | 0.000293 0.000144 0.002182 0.000038 0.000060 | ||
| 658 | 0.000157 0.000153 0.003778 0.000049 0.000095 | ||
| 659 | 0.001735 0.000210 0.004360 0.000050 0.000083 | ||
| 660 | 0.000297 0.000198 0.002532 0.000039 0.000072 | ||
| 661 | 0.000185 0.000163 0.002173 0.000039 0.000070 | ||
| 662 | 0.000183 0.000142 0.002122 0.000038 0.000062 | ||
| 663 | 0.000147 0.000145 0.002443 0.000039 0.000066 | ||
| 664 | 0.000149 0.000144 0.002473 0.000040 0.000066 | ||
| 665 | 0.000147 0.000139 0.002949 0.000038 0.000063 | ||
| 666 | 0.000147 0.000139 0.002737 0.000039 0.000066 | ||
| 667 | 0.000199 0.000142 0.002927 0.000038 0.000066 | ||
| 668 | 0.000149 0.000141 0.002188 0.000038 0.000065 | ||
| 669 | 0.000147 0.000144 0.002203 0.000038 0.000066 | ||
| 670 | 0.000149 0.000141 0.002154 0.000037 0.000062 | ||
| 671 | 0.000144 0.000137 0.003526 0.000037 0.000066 | ||
| 672 | 0.000151 0.000153 0.002150 0.000036 0.000060 | ||
| 673 | 0.000145 0.000138 0.002202 0.000037 0.000065 | ||
| 674 | 0.000272 0.000187 0.002477 0.000038 0.000306 | ||
| 675 | 0.000148 0.000141 0.002421 0.000038 0.000067 | ||
| 676 | 0.000147 0.000141 0.002252 0.000039 0.000065 | ||
| 677 | 0.000150 0.000140 0.002144 0.000037 0.000061 | ||
| 678 | 0.000191 0.000144 0.002229 0.000038 0.000060 | ||
| 679 | 0.000145 0.000145 0.002202 0.000038 0.000061 | ||
| 680 | 0.000146 0.000142 0.002418 0.000038 0.000065 | ||
| 681 | 0.000189 0.000171 0.002568 0.000040 0.000066 | ||
| 682 | 0.000150 0.000141 0.002300 0.000039 0.000067 | ||
| 683 | 0.000151 0.000141 0.002199 0.000038 0.000347 | ||
| 684 | 0.000147 0.000140 0.002165 0.000035 0.000061 | ||
| 685 | 0.000151 0.000646 0.002310 0.000040 0.000062 | ||
| 686 | 0.000161 0.000410 0.002195 0.000038 0.000061 | ||
| 687 | 0.000147 0.000141 0.002466 0.000039 0.000066 | ||
| 688 | 0.000147 0.000141 0.003026 0.000038 0.000066 | ||
| 689 | 0.000148 0.000142 0.002223 0.000038 0.000065 | ||
| 690 | 0.000147 0.000142 0.002196 0.000038 0.000067 | ||
| 691 | 0.000147 0.000141 0.002155 0.000044 0.000064 | ||
| 692 | 0.000146 0.000140 0.002354 0.000039 0.000067 | ||
| 693 | 0.000149 0.000143 0.002186 0.000037 0.000062 | ||
| 694 | 0.000150 0.000144 0.002498 0.000040 0.000063 | ||
| 695 | 0.000178 0.000212 0.002453 0.000039 0.000062 | ||
| 696 | 0.000149 0.000177 0.002463 0.000038 0.000063 | ||
| 697 | 0.000147 0.000142 0.002507 0.000038 0.000067 | ||
| 698 | 0.000149 0.000142 0.002717 0.000038 0.000066 | ||
| 699 | 0.000148 0.000141 0.002452 0.000037 0.000065 | ||
| 700 | 0.000147 0.000140 0.002266 0.000039 0.000066 | ||
| 701 | 0.000149 0.000141 0.002183 0.000037 0.000066 | ||
| 702 | 0.000153 0.000142 0.002203 0.000039 0.000067 | ||
| 703 | 0.000152 0.000419 0.002245 0.000040 0.000062 | ||
| 704 | 0.000149 0.000181 0.002181 0.000038 0.000063 | ||
| 705 | 0.000147 0.000142 0.002224 0.000039 0.000066 | ||
| 706 | 0.000147 0.000142 0.002204 0.000038 0.000066 | ||
| 707 | 0.000146 0.000141 0.002250 0.000038 0.000065 | ||
| 708 | 0.000148 0.000141 0.002142 0.000038 0.000063 | ||
| 709 | 0.000156 0.000139 0.002176 0.000036 0.000060 | ||
| 710 | 0.000243 0.000148 0.002768 0.000039 0.000069 | ||
| 711 | 0.000146 0.000204 0.002194 0.000037 0.000065 | ||
| 712 | 0.000147 0.000143 0.003071 0.000039 0.000066 | ||
| 713 | 0.000148 0.000144 0.003489 0.000042 0.000073 | ||
| 714 | 0.000151 0.000151 0.002173 0.000039 0.000064 | ||
| 715 | 0.000146 0.000140 0.003509 0.000038 0.000067 | ||
| 716 | 0.000148 0.000142 0.002191 0.000038 0.000064 | ||
| 717 | 0.000146 0.000139 0.002441 0.000039 0.000117 | ||
| 718 | 0.000174 0.000141 0.002133 0.000038 0.000065 | ||
| 719 | 0.000151 0.000142 0.002257 0.000039 0.000073 | ||
| 720 | 0.000163 0.000147 0.002187 0.000038 0.000061 | ||
| 721 | 0.000146 0.000222 0.002193 0.000038 0.000062 | ||
| 722 | 0.000145 0.000143 0.002434 0.000037 0.000064 | ||
| 723 | 0.000145 0.000139 0.002933 0.000041 0.000066 | ||
| 724 | 0.000146 0.000140 0.002680 0.000037 0.000065 | ||
| 725 | 0.000143 0.000139 0.002217 0.001029 0.000065 | ||
| 726 | 0.000145 0.000139 0.002361 0.000039 0.000067 | ||
| 727 | 0.000150 0.000143 0.002186 0.000068 0.000066 | ||
| 728 | 0.000148 0.000142 0.002149 0.000037 0.000061 | ||
| 729 | 0.000147 0.000181 0.002183 0.000037 0.000061 | ||
| 730 | 0.000146 0.000455 0.002305 0.000038 0.000074 | ||
| 731 | 0.000148 0.000143 0.002223 0.000038 0.000066 | ||
| 732 | 0.000148 0.000141 0.002547 0.000038 0.000066 | ||
| 733 | 0.000148 0.000143 0.002180 0.000038 0.000336 | ||
| 734 | 0.000146 0.000141 0.002102 0.000037 0.000063 | ||
| 735 | 0.000150 0.000145 0.002170 0.000037 0.000067 | ||
| 736 | 0.000152 0.000138 0.002982 0.000038 0.000067 | ||
| 737 | 0.000149 0.000143 0.002419 0.000037 0.000064 | ||
| 738 | 0.000145 0.000195 0.002228 0.000040 0.000067 | ||
| 739 | 0.000148 0.000143 0.002193 0.000038 0.000064 | ||
| 740 | 0.000155 0.000141 0.002166 0.000067 0.000066 | ||
| 741 | 0.000454 0.000176 0.002193 0.000038 0.000063 | ||
| 742 | 0.000186 0.000142 0.002165 0.000035 0.000066 | ||
| 743 | 0.000144 0.000138 0.002542 0.000038 0.000066 | ||
| 744 | 0.000148 0.000143 0.002733 0.000039 0.000066 | ||
| 745 | 0.000147 0.000141 0.002227 0.000038 0.000067 | ||
| 746 | 0.000145 0.000142 0.002764 0.000037 0.000064 | ||
| 747 | 0.000144 0.000138 0.002207 0.000037 0.000065 | ||
| 748 | 0.000147 0.000185 0.002262 0.000038 0.000062 | ||
| 749 | 0.000154 0.000160 0.002163 0.000038 0.000063 | ||
| 750 | 0.000150 0.000145 0.002719 0.000038 0.000065 | ||
| 751 | 0.000145 0.000139 0.002226 0.000037 0.000074 | ||
| 752 | 0.000148 0.000140 0.002517 0.000038 0.000067 | ||
| 753 | 0.000148 0.000142 0.003734 0.000039 0.000067 | ||
| 754 | 0.000147 0.000143 0.002508 0.000039 0.000067 | ||
| 755 | 0.000146 0.000143 0.002288 0.000038 0.000067 | ||
| 756 | 0.000149 0.000143 0.002899 0.000039 0.000067 | ||
| 757 | 0.000150 0.000145 0.002232 0.000037 0.000065 | ||
| 758 | 0.000148 0.000142 0.002169 0.000039 0.000067 | ||
| 759 | 0.000161 0.000141 0.002196 0.000036 0.000060 | ||
| 760 | 0.000145 0.000137 0.002467 0.000040 0.000064 | ||
| 761 | 0.000147 0.000141 0.002168 0.000037 0.000063 | ||
| 762 | 0.000147 0.000139 0.002165 0.000037 0.000064 | ||
| 763 | 0.000146 0.000138 0.002167 0.000036 0.000060 | ||
| 764 | 0.000150 0.000141 0.002326 0.000039 0.000063 | ||
| 765 | 0.000149 0.000179 0.002197 0.000039 0.000063 | ||
| 766 | 0.000148 0.000142 0.002538 0.000039 0.000067 | ||
| 767 | 0.000148 0.000148 0.002555 0.000039 0.000067 | ||
| 768 | 0.000150 0.000144 0.002180 0.000038 0.000066 | ||
| 769 | 0.000245 0.000152 0.002203 0.000038 0.000065 | ||
| 770 | 0.000146 0.000142 0.002118 0.000036 0.000091 | ||
| 771 | 0.000648 0.000141 0.002173 0.000035 0.000058 | ||
| 772 | 0.000142 0.000149 0.002137 0.000037 0.000059 | ||
| 773 | 0.000144 0.000138 0.002191 0.000037 0.000063 | ||
| 774 | 0.000143 0.000137 0.002795 0.000039 0.000065 | ||
| 775 | 0.000147 0.000256 0.002250 0.000038 0.000064 | ||
| 776 | 0.000148 0.000142 0.002231 0.000040 0.000075 | ||
| 777 | 0.000149 0.000143 0.002174 0.000038 0.000061 | ||
| 778 | 0.000182 0.000708 0.002255 0.000038 0.000061 | ||
| 779 | 0.000181 0.000170 0.002222 0.000038 0.000060 | ||
| 780 | 0.000148 0.000141 0.002177 0.000038 0.000065 | ||
| 781 | 0.000147 0.000141 0.002478 0.000039 0.000065 | ||
| 782 | 0.000148 0.000141 0.002191 0.000039 0.000065 | ||
| 783 | 0.000146 0.000139 0.002161 0.000067 0.000063 | ||
| 784 | 0.000157 0.000138 0.002174 0.000036 0.000059 | ||
| 785 | 0.000143 0.000165 0.002396 0.000040 0.000067 | ||
| 786 | 0.000148 0.000141 0.002302 0.000044 0.000067 | ||
| 787 | 0.000148 0.000142 0.002226 0.000043 0.000065 | ||
| 788 | 0.000149 0.000142 0.002198 0.000038 0.000087 | ||
| 789 | 0.000147 0.000143 0.002221 0.000039 0.000066 | ||
| 790 | 0.000146 0.000142 0.002376 0.000065 0.000063 | ||
| 791 | 0.000152 0.000154 0.002201 0.000038 0.000062 | ||
| 792 | 0.000150 0.000142 0.002705 0.000039 0.000067 | ||
| 793 | 0.000149 0.000142 0.002267 0.000039 0.000067 | ||
| 794 | 0.000194 0.000149 0.002347 0.000039 0.000066 | ||
| 795 | 0.000155 0.000141 0.002594 0.000038 0.000066 | ||
| 796 | 0.000148 0.000141 0.002189 0.000038 0.000064 | ||
| 797 | 0.000202 0.000142 0.002155 0.000039 0.000062 | ||
| 798 | 0.000182 0.000146 0.002204 0.000037 0.000061 | ||
| 799 | 0.000146 0.000139 0.002466 0.000037 0.000065 | ||
| 800 | 0.000146 0.000140 0.002463 0.000036 0.000065 | ||
| 801 | 0.000146 0.000139 0.002209 0.000037 0.000063 | ||
| 802 | 0.000145 0.000138 0.002146 0.000036 0.000060 | ||
| 803 | 0.000181 0.000142 0.003356 0.000038 0.000068 | ||
| 804 | 0.000161 0.000142 0.002169 0.000038 0.000062 | ||
| 805 | 0.000146 0.000175 0.002538 0.000039 0.000061 | ||
| 806 | 0.000148 0.000141 0.002482 0.000039 0.000067 | ||
| 807 | 0.000148 0.000144 0.002450 0.000040 0.000066 | ||
| 808 | 0.000149 0.000143 0.002466 0.000043 0.000068 | ||
| 809 | 0.000148 0.000144 0.003551 0.000038 0.000068 | ||
| 810 | 0.000149 0.000142 0.002482 0.000039 0.000066 | ||
| 811 | 0.000149 0.000142 0.002220 0.000039 0.000066 | ||
| 812 | 0.000151 0.000140 0.002199 0.000038 0.000064 | ||
| 813 | 0.000148 0.000184 0.002185 0.000038 0.000066 | ||
| 814 | 0.000145 0.000140 0.002158 0.000036 0.000092 | ||
| 815 | 0.000158 0.000140 0.002262 0.000038 0.000062 | ||
| 816 | 0.000148 0.000143 0.002674 0.000039 0.000066 | ||
| 817 | 0.000148 0.000140 0.002421 0.000039 0.000066 | ||
| 818 | 0.000149 0.000149 0.002433 0.000038 0.000065 | ||
| 819 | 0.000146 0.000172 0.002187 0.000038 0.000065 | ||
| 820 | 0.000146 0.000140 0.002311 0.000039 0.000323 | ||
| 821 | 0.000149 0.000142 0.002180 0.000038 0.000091 | ||
| 822 | 0.000420 0.000143 0.002483 0.000038 0.000063 | ||
| 823 | 0.000685 0.000145 0.002136 0.000035 0.000064 | ||
| 824 | 0.000146 0.000145 0.002433 0.000038 0.000062 | ||
| 825 | 0.000146 0.000139 0.002496 0.000039 0.000066 | ||
| 826 | 0.000149 0.000139 0.003626 0.000041 0.000068 | ||
| 827 | 0.000153 0.000147 0.002272 0.000042 0.000067 | ||
| 828 | 0.000248 0.000155 0.002208 0.000038 0.000063 | ||
| 829 | 0.000146 0.000138 0.002524 0.000038 0.000068 | ||
| 830 | 0.000147 0.000140 0.002176 0.000210 0.000065 | ||
| 831 | 0.000147 0.000140 0.002166 0.000036 0.000060 | ||
| 832 | 0.000144 0.000146 0.002169 0.000036 0.000057 | ||
| 833 | 0.000144 0.000138 0.002207 0.000037 0.000063 | ||
| 834 | 0.000145 0.000138 0.002183 0.000037 0.000062 | ||
| 835 | 0.000145 0.000137 0.002167 0.000036 0.000059 | ||
| 836 | 0.000148 0.000453 0.002310 0.000038 0.000061 | ||
| 837 | 0.000183 0.000855 0.002326 0.000037 0.000061 | ||
| 838 | 0.000146 0.000175 0.002672 0.000036 0.000060 | ||
| 839 | 0.000143 0.000140 0.002238 0.000039 0.000065 | ||
| 840 | 0.000146 0.000139 0.002473 0.000037 0.000064 | ||
| 841 | 0.000146 0.000139 0.002196 0.000039 0.000065 | ||
| 842 | 0.000145 0.000139 0.002141 0.000036 0.000061 | ||
| 843 | 0.000174 0.000397 0.002175 0.000036 0.000059 | ||
| 844 | 0.000143 0.000139 0.002647 0.000037 0.000065 | ||
| 845 | 0.000147 0.000138 0.002196 0.000037 0.000064 | ||
| 846 | 0.000146 0.000138 0.002199 0.000037 0.000063 | ||
| 847 | 0.000146 0.000138 0.002167 0.000036 0.000066 | ||
| 848 | 0.000169 0.000141 0.002156 0.000036 0.000060 | ||
| 849 | 0.000143 0.000139 0.002180 0.000037 0.000065 | ||
| 850 | 0.000144 0.000136 0.002756 0.000039 0.000066 | ||
| 851 | 0.000150 0.000141 0.002919 0.000039 0.000066 | ||
| 852 | 0.000147 0.000140 0.002184 0.000036 0.000065 | ||
| 853 | 0.000145 0.000138 0.002168 0.000036 0.000091 | ||
| 854 | 0.000156 0.000139 0.002169 0.000036 0.000059 | ||
| 855 | 0.000143 0.000139 0.002741 0.000038 0.000065 | ||
| 856 | 0.000147 0.000140 0.002429 0.000037 0.000063 | ||
| 857 | 0.000145 0.000139 0.002226 0.000037 0.000064 | ||
| 858 | 0.000145 0.000139 0.003381 0.000040 0.000066 | ||
| 859 | 0.000153 0.000141 0.002262 0.000038 0.000064 | ||
| 860 | 0.000145 0.000140 0.002137 0.000036 0.000062 | ||
| 861 | 0.000154 0.000650 0.002217 0.000038 0.000063 | ||
| 862 | 0.000184 0.000143 0.002209 0.000038 0.000062 | ||
| 863 | 0.000153 0.000142 0.002907 0.000039 0.000066 | ||
| 864 | 0.000147 0.000142 0.002158 0.000038 0.000064 | ||
| 865 | 0.000146 0.000140 0.002953 0.000039 0.000068 | ||
| 866 | 0.000148 0.000143 0.002208 0.000039 0.000065 | ||
| 867 | 0.000149 0.000139 0.002187 0.000036 0.000065 | ||
| 868 | 0.000144 0.000139 0.002157 0.000036 0.000061 | ||
| 869 | 0.000154 0.000926 0.002139 0.000036 0.000059 | ||
| 870 | 0.000183 0.000140 0.002526 0.000038 0.000062 | ||
| 871 | 0.000148 0.000142 0.002207 0.000038 0.000066 | ||
| 872 | 0.000147 0.000139 0.002790 0.000039 0.000069 | ||
| 873 | 0.000149 0.000144 0.002251 0.000038 0.000066 | ||
| 874 | 0.000151 0.000140 0.002220 0.000039 0.000066 | ||
| 875 | 0.000148 0.000142 0.002523 0.000038 0.000064 | ||
| 876 | 0.000151 0.000138 0.002151 0.000037 0.000065 | ||
| 877 | 0.000147 0.000140 0.002251 0.000037 0.000062 | ||
| 878 | 0.000149 0.000139 0.002607 0.000037 0.000065 | ||
| 879 | 0.000147 0.000141 0.003380 0.000037 0.000066 | ||
| 880 | 0.000147 0.000139 0.002285 0.000069 0.000066 | ||
| 881 | 0.000149 0.000142 0.002566 0.000038 0.000067 | ||
| 882 | 0.000147 0.000142 0.002523 0.000038 0.000067 | ||
| 883 | 0.000152 0.000143 0.002215 0.000038 0.000067 | ||
| 884 | 0.000150 0.000144 0.002243 0.000038 0.000075 | ||
| 885 | 0.000149 0.000141 0.002148 0.000036 0.000063 | ||
| 886 | 0.000182 0.000144 0.002167 0.000036 0.000062 | ||
| 887 | 0.000278 0.000155 0.002631 0.000036 0.000061 | ||
| 888 | 0.000149 0.000139 0.003175 0.000040 0.000066 | ||
| 889 | 0.000156 0.000140 0.002660 0.000038 0.000065 | ||
| 890 | 0.000148 0.000141 0.006171 0.000067 0.000069 | ||
| 891 | 0.000164 0.000142 0.002713 0.000038 0.000064 | ||
| 892 | 0.000161 0.000150 0.002270 0.000038 0.000081 | ||
| 893 | 0.000160 0.000283 0.002276 0.000038 0.000083 | ||
| 894 | 0.000168 0.000150 0.002207 0.000037 0.000072 | ||
| 895 | 0.000151 0.000669 0.002160 0.000038 0.000062 | ||
| 896 | 0.000196 0.000156 0.002363 0.000036 0.000061 | ||
| 897 | 0.000162 0.000141 0.002160 0.000037 0.000077 | ||
| 898 | 0.000147 0.000141 0.002676 0.000038 0.000096 | ||
| 899 | 0.000162 0.000143 0.002263 0.000037 0.000065 | ||
| 900 | 0.000162 0.000141 0.002206 0.000036 0.000080 | ||
| 901 | 0.000146 0.000139 0.002149 0.000036 0.000060 | ||
| 902 | 0.000169 0.000884 0.002163 0.000036 0.000076 | ||
| 903 | 0.000187 0.000140 0.002222 0.000036 0.000061 | ||
| 904 | 0.000145 0.000140 0.002192 0.000037 0.000084 | ||
| 905 | 0.000145 0.000138 0.002619 0.000039 0.000116 | ||
| 906 | 0.000158 0.000149 0.002213 0.000038 0.000089 | ||
| 907 | 0.000145 0.000183 0.002154 0.000038 0.000089 | ||
| 908 | 0.000162 0.000142 0.002142 0.000037 0.000061 | ||
| 909 | 0.000146 0.000178 0.002401 0.000038 0.000062 | ||
| 910 | 0.000145 0.000150 0.002741 0.000037 0.000081 | ||
| 911 | 0.000147 0.000139 0.002360 0.000040 0.000067 | ||
| 912 | 0.000151 0.000153 0.002459 0.000039 0.000075 | ||
| 913 | 0.000148 0.000155 0.002459 0.000037 0.000091 | ||
| 914 | 0.000153 0.000152 0.002174 0.000036 0.000064 | ||
| 915 | 0.000424 0.000149 0.002116 0.000036 0.000068 | ||
| 916 | 0.000166 0.000168 0.002625 0.000038 0.000076 | ||
| 917 | 0.000146 0.000141 0.002957 0.000038 0.000067 | ||
| 918 | 0.000160 0.000142 0.002501 0.000039 0.000079 | ||
| 919 | 0.000147 0.000143 0.002219 0.000038 0.000066 | ||
| 920 | 0.000160 0.000143 0.002771 0.000040 0.000079 | ||
| 921 | 0.000148 0.000150 0.002426 0.000037 0.000082 | ||
| 922 | 0.000146 0.000138 0.002134 0.000036 0.000103 | ||
| 923 | 0.000659 0.000143 0.002197 0.000036 0.000073 | ||
| 924 | 0.000179 0.000153 0.002301 0.000038 0.000074 | ||
| 925 | 0.000147 0.000142 0.002258 0.000038 0.000066 | ||
| 926 | 0.000146 0.000141 0.002210 0.000038 0.000066 | ||
| 927 | 0.000161 0.000141 0.002235 0.000038 0.000084 | ||
| 928 | 0.000145 0.000138 0.002131 0.000036 0.000060 | ||
| 929 | 0.000151 0.000211 0.002265 0.000038 0.000062 | ||
| 930 | 0.000147 0.000142 0.002254 0.000038 0.000067 | ||
| 931 | 0.000148 0.000143 0.002217 0.000038 0.000079 | ||
| 932 | 0.000160 0.000155 0.002229 0.000038 0.000066 | ||
| 933 | 0.000145 0.000142 0.002129 0.000038 0.000065 | ||
| 934 | 0.000165 0.000140 0.002140 0.000036 0.000076 | ||
| 935 | 0.000162 0.000142 0.002452 0.000039 0.000079 | ||
| 936 | 0.000148 0.000143 0.002253 0.000059 0.000068 | ||
| 937 | 0.000164 0.000142 0.003378 0.000039 0.000096 | ||
| 938 | 0.000150 0.000194 0.002192 0.000039 0.000067 | ||
| 939 | 0.000161 0.000152 0.002202 0.000037 0.000077 | ||
| 940 | 0.000160 0.000141 0.002258 0.000039 0.000067 | ||
| 941 | 0.000167 0.000143 0.002706 0.000039 0.000067 | ||
| 942 | 0.000149 0.000155 0.002280 0.000037 0.000100 | ||
| 943 | 0.000174 0.000144 0.002134 0.000037 0.000090 | ||
| 944 | 0.001167 0.000154 0.002224 0.000038 0.000067 | ||
| 945 | 0.000162 0.000155 0.002181 0.000035 0.000065 | ||
| 946 | 0.000773 0.000153 0.002145 0.000036 0.000060 | ||
| 947 | 0.000149 0.000161 0.002160 0.000036 0.000071 | ||
| 948 | 0.000208 0.000144 0.002164 0.000035 0.000060 | ||
| 949 | 0.000143 0.000138 0.002156 0.000036 0.000064 | ||
| 950 | 0.000143 0.000138 0.002225 0.000055 0.000066 | ||
| 951 | 0.000147 0.000141 0.002734 0.000038 0.000065 | ||
| 952 | 0.000145 0.000147 0.002173 0.000037 0.000064 | ||
| 953 | 0.000146 0.000139 0.002112 0.000037 0.000060 | ||
| 954 | 0.000144 0.000137 0.002708 0.000038 0.000064 | ||
| 955 | 0.000144 0.000139 0.002421 0.000037 0.000064 | ||
| 956 | 0.000145 0.000140 0.002449 0.000037 0.000063 | ||
| 957 | 0.000143 0.000138 0.002278 0.000038 0.000064 | ||
| 958 | 0.000145 0.000140 0.002427 0.000040 0.000130 | ||
| 959 | 0.000151 0.000142 0.002155 0.000036 0.000064 | ||
| 960 | 0.000181 0.000139 0.002435 0.000036 0.000060 | ||
| 961 | 0.000145 0.000138 0.003527 0.000038 0.000065 | ||
| 962 | 0.000146 0.000178 0.002178 0.000036 0.000060 | ||
| 963 | 0.000145 0.000138 0.002139 0.000037 0.000065 | ||
| 964 | 0.000145 0.000137 0.003006 0.000037 0.000064 | ||
| 965 | 0.000146 0.000139 0.002204 0.000037 0.000065 | ||
| 966 | 0.000145 0.000139 0.002211 0.000038 0.000062 | ||
| 967 | 0.000182 0.000140 0.002221 0.000036 0.000061 | ||
| 968 | 0.000145 0.000139 0.003169 0.000038 0.000068 | ||
| 969 | 0.000149 0.000174 0.002414 0.000038 0.000066 | ||
| 970 | 0.000147 0.000142 0.002234 0.000038 0.000066 | ||
| 971 | 0.000149 0.000143 0.002678 0.000038 0.000065 | ||
| 972 | 0.000148 0.000141 0.002886 0.000038 0.000066 | ||
| 973 | 0.000145 0.000140 0.002250 0.000038 0.000065 | ||
| 974 | 0.000148 0.000139 0.002181 0.000035 0.000065 | ||
| 975 | 0.000718 0.000142 0.002141 0.000035 0.000059 | ||
| 976 | 0.000189 0.000140 0.002383 0.000036 0.000059 | ||
| 977 | 0.000145 0.000139 0.002206 0.000039 0.000065 | ||
| 978 | 0.000154 0.000186 0.002457 0.000038 0.000066 | ||
| 979 | 0.000190 0.000141 0.002224 0.000038 0.000066 | ||
| 980 | 0.000149 0.000141 0.002151 0.000037 0.000066 | ||
| 981 | 0.000215 0.000143 0.002151 0.000035 0.000061 | ||
| 982 | 0.000144 0.000138 0.002822 0.000039 0.000065 | ||
| 983 | 0.000147 0.000139 0.002275 0.000038 0.000065 | ||
| 984 | 0.000148 0.000141 0.002211 0.000036 0.000064 | ||
| 985 | 0.000146 0.000138 0.002201 0.000037 0.000066 | ||
| 986 | 0.000148 0.000140 0.002273 0.000038 0.000068 | ||
| 987 | 0.000150 0.000144 0.002188 0.000037 0.000063 | ||
| 988 | 0.000152 0.000151 0.002190 0.000037 0.000062 | ||
| 989 | 0.000146 0.000142 0.003145 0.000039 0.000067 | ||
| 990 | 0.000151 0.000139 0.002218 0.000037 0.000065 | ||
| 991 | 0.000145 0.000138 0.002264 0.000037 0.000066 | ||
| 992 | 0.000148 0.000142 0.003011 0.000039 0.000067 | ||
| 993 | 0.000149 0.000141 0.002196 0.000038 0.000065 | ||
| 994 | 0.000146 0.000141 0.002188 0.000036 0.000060 | ||
| 995 | 0.000149 0.000140 0.002190 0.000035 0.000060 | ||
| 996 | 0.000144 0.000137 0.002641 0.000038 0.000064 | ||
| 997 | 0.000146 0.000138 0.002182 0.000043 0.000065 | ||
| 998 | 0.000146 0.000141 0.002216 0.000036 0.000064 | ||
| 999 | 0.000147 0.000139 0.002294 0.000039 0.000068 | ||
| 1000 | 0.000657 0.000145 0.002143 0.000037 0.000062 | ||
| 1001 | 0.000154 0.000415 0.002237 0.000040 0.000084 | ||
diff --git a/static/assets/posts/dropbox-sync/dropbox-spaces.png b/static/assets/posts/dropbox-sync/dropbox-spaces.png new file mode 100755 index 0000000..c90f99f --- /dev/null +++ b/static/assets/posts/dropbox-sync/dropbox-spaces.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/esp8366-micropython/boards.jpg b/static/assets/posts/esp8366-micropython/boards.jpg new file mode 100755 index 0000000..89e2b30 --- /dev/null +++ b/static/assets/posts/esp8366-micropython/boards.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/go-profiling/golang-profiling-cpu.pdf b/static/assets/posts/go-profiling/golang-profiling-cpu.pdf new file mode 100755 index 0000000..15241cb --- /dev/null +++ b/static/assets/posts/go-profiling/golang-profiling-cpu.pdf | |||
| Binary files differ | |||
diff --git a/static/assets/posts/go-profiling/golang-profiling-mem.pdf b/static/assets/posts/go-profiling/golang-profiling-mem.pdf new file mode 100755 index 0000000..822e445 --- /dev/null +++ b/static/assets/posts/go-profiling/golang-profiling-mem.pdf | |||
| Binary files differ | |||
diff --git a/static/assets/posts/goaccess/goaccess-dash-html.png b/static/assets/posts/goaccess/goaccess-dash-html.png new file mode 100755 index 0000000..917d959 --- /dev/null +++ b/static/assets/posts/goaccess/goaccess-dash-html.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/goaccess/goaccess-dash-term.png b/static/assets/posts/goaccess/goaccess-dash-term.png new file mode 100755 index 0000000..e3f6357 --- /dev/null +++ b/static/assets/posts/goaccess/goaccess-dash-term.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/2d-player-movement.webm b/static/assets/posts/godot-dynamic-tile-loading/2d-player-movement.webm new file mode 100644 index 0000000..579f2f3 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/2d-player-movement.webm | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/cellular-automata.png b/static/assets/posts/godot-dynamic-tile-loading/cellular-automata.png new file mode 100644 index 0000000..1b28242 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/cellular-automata.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.apple-touch-icon.png b/static/assets/posts/godot-dynamic-tile-loading/example1/index.apple-touch-icon.png new file mode 100644 index 0000000..880ae2d --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.apple-touch-icon.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.audio.worklet.js b/static/assets/posts/godot-dynamic-tile-loading/example1/index.audio.worklet.js new file mode 100644 index 0000000..ea4d8cb --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.audio.worklet.js | |||
| @@ -0,0 +1,211 @@ | |||
| 1 | /*************************************************************************/ | ||
| 2 | /* audio.worklet.js */ | ||
| 3 | /*************************************************************************/ | ||
| 4 | /* This file is part of: */ | ||
| 5 | /* GODOT ENGINE */ | ||
| 6 | /* https://godotengine.org */ | ||
| 7 | /*************************************************************************/ | ||
| 8 | /* Copyright (c) 2007-2022 Juan Linietsky, Ariel Manzur. */ | ||
| 9 | /* Copyright (c) 2014-2022 Godot Engine contributors (cf. AUTHORS.md). */ | ||
| 10 | /* */ | ||
| 11 | /* Permission is hereby granted, free of charge, to any person obtaining */ | ||
| 12 | /* a copy of this software and associated documentation files (the */ | ||
| 13 | /* "Software"), to deal in the Software without restriction, including */ | ||
| 14 | /* without limitation the rights to use, copy, modify, merge, publish, */ | ||
| 15 | /* distribute, sublicense, and/or sell copies of the Software, and to */ | ||
| 16 | /* permit persons to whom the Software is furnished to do so, subject to */ | ||
| 17 | /* the following conditions: */ | ||
| 18 | /* */ | ||
| 19 | /* The above copyright notice and this permission notice shall be */ | ||
| 20 | /* included in all copies or substantial portions of the Software. */ | ||
| 21 | /* */ | ||
| 22 | /* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ | ||
| 23 | /* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ | ||
| 24 | /* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ | ||
| 25 | /* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ | ||
| 26 | /* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ | ||
| 27 | /* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ | ||
| 28 | /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ | ||
| 29 | /*************************************************************************/ | ||
| 30 | |||
| 31 | class RingBuffer { | ||
| 32 | constructor(p_buffer, p_state, p_threads) { | ||
| 33 | this.buffer = p_buffer; | ||
| 34 | this.avail = p_state; | ||
| 35 | this.threads = p_threads; | ||
| 36 | this.rpos = 0; | ||
| 37 | this.wpos = 0; | ||
| 38 | } | ||
| 39 | |||
| 40 | data_left() { | ||
| 41 | return this.threads ? Atomics.load(this.avail, 0) : this.avail; | ||
| 42 | } | ||
| 43 | |||
| 44 | space_left() { | ||
| 45 | return this.buffer.length - this.data_left(); | ||
| 46 | } | ||
| 47 | |||
| 48 | read(output) { | ||
| 49 | const size = this.buffer.length; | ||
| 50 | let from = 0; | ||
| 51 | let to_write = output.length; | ||
| 52 | if (this.rpos + to_write > size) { | ||
| 53 | const high = size - this.rpos; | ||
| 54 | output.set(this.buffer.subarray(this.rpos, size)); | ||
| 55 | from = high; | ||
| 56 | to_write -= high; | ||
| 57 | this.rpos = 0; | ||
| 58 | } | ||
| 59 | if (to_write) { | ||
| 60 | output.set(this.buffer.subarray(this.rpos, this.rpos + to_write), from); | ||
| 61 | } | ||
| 62 | this.rpos += to_write; | ||
| 63 | if (this.threads) { | ||
| 64 | Atomics.add(this.avail, 0, -output.length); | ||
| 65 | Atomics.notify(this.avail, 0); | ||
| 66 | } else { | ||
| 67 | this.avail -= output.length; | ||
| 68 | } | ||
| 69 | } | ||
| 70 | |||
| 71 | write(p_buffer) { | ||
| 72 | const to_write = p_buffer.length; | ||
| 73 | const mw = this.buffer.length - this.wpos; | ||
| 74 | if (mw >= to_write) { | ||
| 75 | this.buffer.set(p_buffer, this.wpos); | ||
| 76 | this.wpos += to_write; | ||
| 77 | if (mw === to_write) { | ||
| 78 | this.wpos = 0; | ||
| 79 | } | ||
| 80 | } else { | ||
| 81 | const high = p_buffer.subarray(0, mw); | ||
| 82 | const low = p_buffer.subarray(mw); | ||
| 83 | this.buffer.set(high, this.wpos); | ||
| 84 | this.buffer.set(low); | ||
| 85 | this.wpos = low.length; | ||
| 86 | } | ||
| 87 | if (this.threads) { | ||
| 88 | Atomics.add(this.avail, 0, to_write); | ||
| 89 | Atomics.notify(this.avail, 0); | ||
| 90 | } else { | ||
| 91 | this.avail += to_write; | ||
| 92 | } | ||
| 93 | } | ||
| 94 | } | ||
| 95 | |||
| 96 | class GodotProcessor extends AudioWorkletProcessor { | ||
| 97 | constructor() { | ||
| 98 | super(); | ||
| 99 | this.threads = false; | ||
| 100 | this.running = true; | ||
| 101 | this.lock = null; | ||
| 102 | this.notifier = null; | ||
| 103 | this.output = null; | ||
| 104 | this.output_buffer = new Float32Array(); | ||
| 105 | this.input = null; | ||
| 106 | this.input_buffer = new Float32Array(); | ||
| 107 | this.port.onmessage = (event) => { | ||
| 108 | const cmd = event.data['cmd']; | ||
| 109 | const data = event.data['data']; | ||
| 110 | this.parse_message(cmd, data); | ||
| 111 | }; | ||
| 112 | } | ||
| 113 | |||
| 114 | process_notify() { | ||
| 115 | if (this.notifier) { | ||
| 116 | Atomics.add(this.notifier, 0, 1); | ||
| 117 | Atomics.notify(this.notifier, 0); | ||
| 118 | } | ||
| 119 | } | ||
| 120 | |||
| 121 | parse_message(p_cmd, p_data) { | ||
| 122 | if (p_cmd === 'start' && p_data) { | ||
| 123 | const state = p_data[0]; | ||
| 124 | let idx = 0; | ||
| 125 | this.threads = true; | ||
| 126 | this.lock = state.subarray(idx, ++idx); | ||
| 127 | this.notifier = state.subarray(idx, ++idx); | ||
| 128 | const avail_in = state.subarray(idx, ++idx); | ||
| 129 | const avail_out = state.subarray(idx, ++idx); | ||
| 130 | this.input = new RingBuffer(p_data[1], avail_in, true); | ||
| 131 | this.output = new RingBuffer(p_data[2], avail_out, true); | ||
| 132 | } else if (p_cmd === 'stop') { | ||
| 133 | this.running = false; | ||
| 134 | this.output = null; | ||
| 135 | this.input = null; | ||
| 136 | } else if (p_cmd === 'start_nothreads') { | ||
| 137 | this.output = new RingBuffer(p_data[0], p_data[0].length, false); | ||
| 138 | } else if (p_cmd === 'chunk') { | ||
| 139 | this.output.write(p_data); | ||
| 140 | } | ||
| 141 | } | ||
| 142 | |||
| 143 | static array_has_data(arr) { | ||
| 144 | return arr.length && arr[0].length && arr[0][0].length; | ||
| 145 | } | ||
| 146 | |||
| 147 | process(inputs, outputs, parameters) { | ||
| 148 | if (!this.running) { | ||
| 149 | return false; // Stop processing. | ||
| 150 | } | ||
| 151 | if (this.output === null) { | ||
| 152 | return true; // Not ready yet, keep processing. | ||
| 153 | } | ||
| 154 | const process_input = GodotProcessor.array_has_data(inputs); | ||
| 155 | if (process_input) { | ||
| 156 | const input = inputs[0]; | ||
| 157 | const chunk = input[0].length * input.length; | ||
| 158 | if (this.input_buffer.length !== chunk) { | ||
| 159 | this.input_buffer = new Float32Array(chunk); | ||
| 160 | } | ||
| 161 | if (!this.threads) { | ||
| 162 | GodotProcessor.write_input(this.input_buffer, input); | ||
| 163 | this.port.postMessage({ 'cmd': 'input', 'data': this.input_buffer }); | ||
| 164 | } else if (this.input.space_left() >= chunk) { | ||
| 165 | GodotProcessor.write_input(this.input_buffer, input); | ||
| 166 | this.input.write(this.input_buffer); | ||
| 167 | } else { | ||
| 168 | this.port.postMessage('Input buffer is full! Skipping input frame.'); | ||
| 169 | } | ||
| 170 | } | ||
| 171 | const process_output = GodotProcessor.array_has_data(outputs); | ||
| 172 | if (process_output) { | ||
| 173 | const output = outputs[0]; | ||
| 174 | const chunk = output[0].length * output.length; | ||
| 175 | if (this.output_buffer.length !== chunk) { | ||
| 176 | this.output_buffer = new Float32Array(chunk); | ||
| 177 | } | ||
| 178 | if (this.output.data_left() >= chunk) { | ||
| 179 | this.output.read(this.output_buffer); | ||
| 180 | GodotProcessor.write_output(output, this.output_buffer); | ||
| 181 | if (!this.threads) { | ||
| 182 | this.port.postMessage({ 'cmd': 'read', 'data': chunk }); | ||
| 183 | } | ||
| 184 | } else { | ||
| 185 | this.port.postMessage('Output buffer has not enough frames! Skipping output frame.'); | ||
| 186 | } | ||
| 187 | } | ||
| 188 | this.process_notify(); | ||
| 189 | return true; | ||
| 190 | } | ||
| 191 | |||
| 192 | static write_output(dest, source) { | ||
| 193 | const channels = dest.length; | ||
| 194 | for (let ch = 0; ch < channels; ch++) { | ||
| 195 | for (let sample = 0; sample < dest[ch].length; sample++) { | ||
| 196 | dest[ch][sample] = source[sample * channels + ch]; | ||
| 197 | } | ||
| 198 | } | ||
| 199 | } | ||
| 200 | |||
| 201 | static write_input(dest, source) { | ||
| 202 | const channels = source.length; | ||
| 203 | for (let ch = 0; ch < channels; ch++) { | ||
| 204 | for (let sample = 0; sample < source[ch].length; sample++) { | ||
| 205 | dest[sample * channels + ch] = source[ch][sample]; | ||
| 206 | } | ||
| 207 | } | ||
| 208 | } | ||
| 209 | } | ||
| 210 | |||
| 211 | registerProcessor('godot-processor', GodotProcessor); | ||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.html b/static/assets/posts/godot-dynamic-tile-loading/example1/index.html new file mode 100644 index 0000000..e96af24 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.html | |||
| @@ -0,0 +1,248 @@ | |||
| 1 | <!DOCTYPE html> | ||
| 2 | <html xmlns='http://www.w3.org/1999/xhtml' lang='' xml:lang=''> | ||
| 3 | <head> | ||
| 4 | <meta charset='utf-8' /> | ||
| 5 | <meta name='viewport' content='width=device-width, user-scalable=no' /> | ||
| 6 | <title>html1</title> | ||
| 7 | <style type='text/css'> | ||
| 8 | |||
| 9 | body { | ||
| 10 | touch-action: none; | ||
| 11 | margin: 0; | ||
| 12 | border: 0 none; | ||
| 13 | padding: 0; | ||
| 14 | text-align: center; | ||
| 15 | background-color: black; | ||
| 16 | } | ||
| 17 | |||
| 18 | #canvas { | ||
| 19 | display: block; | ||
| 20 | margin: 0; | ||
| 21 | color: white; | ||
| 22 | } | ||
| 23 | |||
| 24 | #canvas:focus { | ||
| 25 | outline: none; | ||
| 26 | } | ||
| 27 | |||
| 28 | .godot { | ||
| 29 | font-family: 'Noto Sans', 'Droid Sans', Arial, sans-serif; | ||
| 30 | color: #e0e0e0; | ||
| 31 | background-color: #3b3943; | ||
| 32 | background-image: linear-gradient(to bottom, #403e48, #35333c); | ||
| 33 | border: 1px solid #45434e; | ||
| 34 | box-shadow: 0 0 1px 1px #2f2d35; | ||
| 35 | } | ||
| 36 | |||
| 37 | |||
| 38 | /* Status display | ||
| 39 | * ============== */ | ||
| 40 | |||
| 41 | #status { | ||
| 42 | position: absolute; | ||
| 43 | left: 0; | ||
| 44 | top: 0; | ||
| 45 | right: 0; | ||
| 46 | bottom: 0; | ||
| 47 | display: flex; | ||
| 48 | justify-content: center; | ||
| 49 | align-items: center; | ||
| 50 | /* don't consume click events - make children visible explicitly */ | ||
| 51 | visibility: hidden; | ||
| 52 | } | ||
| 53 | |||
| 54 | #status-progress { | ||
| 55 | width: 366px; | ||
| 56 | height: 7px; | ||
| 57 | background-color: #38363A; | ||
| 58 | border: 1px solid #444246; | ||
| 59 | padding: 1px; | ||
| 60 | box-shadow: 0 0 2px 1px #1B1C22; | ||
| 61 | border-radius: 2px; | ||
| 62 | visibility: visible; | ||
| 63 | } | ||
| 64 | |||
| 65 | @media only screen and (orientation:portrait) { | ||
| 66 | #status-progress { | ||
| 67 | width: 61.8%; | ||
| 68 | } | ||
| 69 | } | ||
| 70 | |||
| 71 | #status-progress-inner { | ||
| 72 | height: 100%; | ||
| 73 | width: 0; | ||
| 74 | box-sizing: border-box; | ||
| 75 | transition: width 0.5s linear; | ||
| 76 | background-color: #202020; | ||
| 77 | border: 1px solid #222223; | ||
| 78 | box-shadow: 0 0 1px 1px #27282E; | ||
| 79 | border-radius: 3px; | ||
| 80 | } | ||
| 81 | |||
| 82 | #status-indeterminate { | ||
| 83 | height: 42px; | ||
| 84 | visibility: visible; | ||
| 85 | position: relative; | ||
| 86 | } | ||
| 87 | |||
| 88 | #status-indeterminate > div { | ||
| 89 | width: 4.5px; | ||
| 90 | height: 0; | ||
| 91 | border-style: solid; | ||
| 92 | border-width: 9px 3px 0 3px; | ||
| 93 | border-color: #2b2b2b transparent transparent transparent; | ||
| 94 | transform-origin: center 21px; | ||
| 95 | position: absolute; | ||
| 96 | } | ||
| 97 | |||
| 98 | #status-indeterminate > div:nth-child(1) { transform: rotate( 22.5deg); } | ||
| 99 | #status-indeterminate > div:nth-child(2) { transform: rotate( 67.5deg); } | ||
| 100 | #status-indeterminate > div:nth-child(3) { transform: rotate(112.5deg); } | ||
| 101 | #status-indeterminate > div:nth-child(4) { transform: rotate(157.5deg); } | ||
| 102 | #status-indeterminate > div:nth-child(5) { transform: rotate(202.5deg); } | ||
| 103 | #status-indeterminate > div:nth-child(6) { transform: rotate(247.5deg); } | ||
| 104 | #status-indeterminate > div:nth-child(7) { transform: rotate(292.5deg); } | ||
| 105 | #status-indeterminate > div:nth-child(8) { transform: rotate(337.5deg); } | ||
| 106 | |||
| 107 | #status-notice { | ||
| 108 | margin: 0 100px; | ||
| 109 | line-height: 1.3; | ||
| 110 | visibility: visible; | ||
| 111 | padding: 4px 6px; | ||
| 112 | visibility: visible; | ||
| 113 | } | ||
| 114 | </style> | ||
| 115 | <link id='-gd-engine-icon' rel='icon' type='image/png' href='index.icon.png' /> | ||
| 116 | <link rel='apple-touch-icon' href='index.apple-touch-icon.png'/> | ||
| 117 | |||
| 118 | </head> | ||
| 119 | <body> | ||
| 120 | <canvas id='canvas'> | ||
| 121 | HTML5 canvas appears to be unsupported in the current browser.<br /> | ||
| 122 | Please try updating or use a different browser. | ||
| 123 | </canvas> | ||
| 124 | <div id='status'> | ||
| 125 | <div id='status-progress' style='display: none;' oncontextmenu='event.preventDefault();'><div id ='status-progress-inner'></div></div> | ||
| 126 | <div id='status-indeterminate' style='display: none;' oncontextmenu='event.preventDefault();'> | ||
| 127 | <div></div> | ||
| 128 | <div></div> | ||
| 129 | <div></div> | ||
| 130 | <div></div> | ||
| 131 | <div></div> | ||
| 132 | <div></div> | ||
| 133 | <div></div> | ||
| 134 | <div></div> | ||
| 135 | </div> | ||
| 136 | <div id='status-notice' class='godot' style='display: none;'></div> | ||
| 137 | </div> | ||
| 138 | |||
| 139 | <script type='text/javascript' src='index.js'></script> | ||
| 140 | <script type='text/javascript'>//<![CDATA[ | ||
| 141 | |||
| 142 | const GODOT_CONFIG = {"args":[],"canvasResizePolicy":2,"executable":"index","experimentalVK":false,"fileSizes":{"index.pck":7056,"index.wasm":13789463},"focusCanvas":true,"gdnativeLibs":[]}; | ||
| 143 | var engine = new Engine(GODOT_CONFIG); | ||
| 144 | |||
| 145 | (function() { | ||
| 146 | const INDETERMINATE_STATUS_STEP_MS = 100; | ||
| 147 | var statusProgress = document.getElementById('status-progress'); | ||
| 148 | var statusProgressInner = document.getElementById('status-progress-inner'); | ||
| 149 | var statusIndeterminate = document.getElementById('status-indeterminate'); | ||
| 150 | var statusNotice = document.getElementById('status-notice'); | ||
| 151 | |||
| 152 | var initializing = true; | ||
| 153 | var statusMode = 'hidden'; | ||
| 154 | |||
| 155 | var animationCallbacks = []; | ||
| 156 | function animate(time) { | ||
| 157 | animationCallbacks.forEach(callback => callback(time)); | ||
| 158 | requestAnimationFrame(animate); | ||
| 159 | } | ||
| 160 | requestAnimationFrame(animate); | ||
| 161 | |||
| 162 | function setStatusMode(mode) { | ||
| 163 | |||
| 164 | if (statusMode === mode || !initializing) | ||
| 165 | return; | ||
| 166 | [statusProgress, statusIndeterminate, statusNotice].forEach(elem => { | ||
| 167 | elem.style.display = 'none'; | ||
| 168 | }); | ||
| 169 | animationCallbacks = animationCallbacks.filter(function(value) { | ||
| 170 | return (value != animateStatusIndeterminate); | ||
| 171 | }); | ||
| 172 | switch (mode) { | ||
| 173 | case 'progress': | ||
| 174 | statusProgress.style.display = 'block'; | ||
| 175 | break; | ||
| 176 | case 'indeterminate': | ||
| 177 | statusIndeterminate.style.display = 'block'; | ||
| 178 | animationCallbacks.push(animateStatusIndeterminate); | ||
| 179 | break; | ||
| 180 | case 'notice': | ||
| 181 | statusNotice.style.display = 'block'; | ||
| 182 | break; | ||
| 183 | case 'hidden': | ||
| 184 | break; | ||
| 185 | default: | ||
| 186 | throw new Error('Invalid status mode'); | ||
| 187 | } | ||
| 188 | statusMode = mode; | ||
| 189 | } | ||
| 190 | |||
| 191 | function animateStatusIndeterminate(ms) { | ||
| 192 | var i = Math.floor(ms / INDETERMINATE_STATUS_STEP_MS % 8); | ||
| 193 | if (statusIndeterminate.children[i].style.borderTopColor == '') { | ||
| 194 | Array.prototype.slice.call(statusIndeterminate.children).forEach(child => { | ||
| 195 | child.style.borderTopColor = ''; | ||
| 196 | }); | ||
| 197 | statusIndeterminate.children[i].style.borderTopColor = '#dfdfdf'; | ||
| 198 | } | ||
| 199 | } | ||
| 200 | |||
| 201 | function setStatusNotice(text) { | ||
| 202 | while (statusNotice.lastChild) { | ||
| 203 | statusNotice.removeChild(statusNotice.lastChild); | ||
| 204 | } | ||
| 205 | var lines = text.split('\n'); | ||
| 206 | lines.forEach((line) => { | ||
| 207 | statusNotice.appendChild(document.createTextNode(line)); | ||
| 208 | statusNotice.appendChild(document.createElement('br')); | ||
| 209 | }); | ||
| 210 | }; | ||
| 211 | |||
| 212 | function displayFailureNotice(err) { | ||
| 213 | var msg = err.message || err; | ||
| 214 | console.error(msg); | ||
| 215 | setStatusNotice(msg); | ||
| 216 | setStatusMode('notice'); | ||
| 217 | initializing = false; | ||
| 218 | }; | ||
| 219 | |||
| 220 | if (!Engine.isWebGLAvailable()) { | ||
| 221 | displayFailureNotice('WebGL not available'); | ||
| 222 | } else { | ||
| 223 | setStatusMode('indeterminate'); | ||
| 224 | engine.startGame({ | ||
| 225 | 'onProgress': function (current, total) { | ||
| 226 | if (total > 0) { | ||
| 227 | statusProgressInner.style.width = current/total * 100 + '%'; | ||
| 228 | setStatusMode('progress'); | ||
| 229 | if (current === total) { | ||
| 230 | // wait for progress bar animation | ||
| 231 | setTimeout(() => { | ||
| 232 | setStatusMode('indeterminate'); | ||
| 233 | }, 500); | ||
| 234 | } | ||
| 235 | } else { | ||
| 236 | setStatusMode('indeterminate'); | ||
| 237 | } | ||
| 238 | }, | ||
| 239 | }).then(() => { | ||
| 240 | setStatusMode('hidden'); | ||
| 241 | initializing = false; | ||
| 242 | }, displayFailureNotice); | ||
| 243 | } | ||
| 244 | })(); | ||
| 245 | //]]></script> | ||
| 246 | </body> | ||
| 247 | </html> | ||
| 248 | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.icon.png b/static/assets/posts/godot-dynamic-tile-loading/example1/index.icon.png new file mode 100644 index 0000000..c98fbb6 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.icon.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.js b/static/assets/posts/godot-dynamic-tile-loading/example1/index.js new file mode 100644 index 0000000..1c18e52 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.js | |||
| @@ -0,0 +1,796 @@ | |||
| 1 | |||
| 2 | var Godot = (() => { | ||
| 3 | var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; | ||
| 4 | |||
| 5 | return ( | ||
| 6 | function(Godot) { | ||
| 7 | Godot = Godot || {}; | ||
| 8 | |||
| 9 | var Module=typeof Godot!="undefined"?Godot:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var tempRet0=0;var setTempRet0=value=>{tempRet0=value};var getTempRet0=()=>tempRet0;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||false;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}function getCFunc(ident){var func=Module["_"+ident];return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string"){return UTF8ToString(ret)}if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}function cwrap(ident,returnType,argTypes,opts){argTypes=argTypes||[];var numericArgs=argTypes.every(function(type){return type==="number"});var numericRet=returnType!=="string";if(numericRet&&numericArgs&&!opts){return getCFunc(ident)}return function(){return ccall(ident,returnType,argTypes,arguments,opts)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function allocateUTF8OnStack(str){var size=lengthBytesUTF8(str)+1;var ret=stackAlloc(size);stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||33554432;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();SOCKFS.root=FS.mount(SOCKFS,{},null);callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){___funcs_on_exit();callRuntimeCallbacks(__ATEXIT__);FS.quit();TTY.shutdown();IDBFS.quit();runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="godot.javascript.opt.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["dk"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["rk"];addOnInit(Module["asm"]["ek"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync().catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function getValue(ptr,type="i8"){if(type.endsWith("*"))type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return Number(HEAPF64[ptr>>3]);default:abort("invalid type for getValue: "+type)}return null}function getWasmTableEntry(funcPtr){return wasmTable.get(funcPtr)}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function setValue(ptr,value,type="i8"){if(type.endsWith("*"))type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}function ___call_sighandler(fp,sig){getWasmTableEntry(fp)(sig)}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.flush(stream.tty)},flush:function(stream){stream.tty.ops.flush(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(mmapFlags&2){return 0}var bytesWritten=MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};function asyncLoad(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency("al "+url):"";readAsync(url,function(arrayBuffer){assert(arrayBuffer,'Loading data file "'+url+'" failed (no arrayBuffer).');onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},function(event){if(onerror){onerror()}else{throw'Loading data file "'+url+'" failed.'}});if(dep)addRunDependency(dep)}var IDBFS={dbs:{},indexedDB:()=>{if(typeof indexedDB!="undefined")return indexedDB;var ret=null;if(typeof window=="object")ret=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;assert(ret,"IDBFS used, but indexedDB not supported");return ret},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(mount){return MEMFS.mount.apply(null,arguments)},syncfs:(mount,populate,callback)=>{IDBFS.getLocalSet(mount,(err,local)=>{if(err)return callback(err);IDBFS.getRemoteSet(mount,(err,remote)=>{if(err)return callback(err);var src=populate?remote:local;var dst=populate?local:remote;IDBFS.reconcile(src,dst,callback)})})},quit:()=>{Object.values(IDBFS.dbs).forEach(value=>value.close());IDBFS.dbs={}},getDB:(name,callback)=>{var db=IDBFS.dbs[name];if(db){return callback(null,db)}var req;try{req=IDBFS.indexedDB().open(name,IDBFS.DB_VERSION)}catch(e){return callback(e)}if(!req){return callback("Unable to connect to IndexedDB")}req.onupgradeneeded=e=>{var db=e.target.result;var transaction=e.target.transaction;var fileStore;if(db.objectStoreNames.contains(IDBFS.DB_STORE_NAME)){fileStore=transaction.objectStore(IDBFS.DB_STORE_NAME)}else{fileStore=db.createObjectStore(IDBFS.DB_STORE_NAME)}if(!fileStore.indexNames.contains("timestamp")){fileStore.createIndex("timestamp","timestamp",{unique:false})}};req.onsuccess=()=>{db=req.result;IDBFS.dbs[name]=db;callback(null,db)};req.onerror=e=>{callback(this.error);e.preventDefault()}},getLocalSet:(mount,callback)=>{var entries={};function isRealDir(p){return p!=="."&&p!==".."}function toAbsolute(root){return p=>{return PATH.join2(root,p)}}var check=FS.readdir(mount.mountpoint).filter(isRealDir).map(toAbsolute(mount.mountpoint));while(check.length){var path=check.pop();var stat;try{stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){check.push.apply(check,FS.readdir(path).filter(isRealDir).map(toAbsolute(path)))}entries[path]={"timestamp":stat.mtime}}return callback(null,{type:"local",entries:entries})},getRemoteSet:(mount,callback)=>{var entries={};IDBFS.getDB(mount.mountpoint,(err,db)=>{if(err)return callback(err);try{var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readonly");transaction.onerror=e=>{callback(this.error);e.preventDefault()};var store=transaction.objectStore(IDBFS.DB_STORE_NAME);var index=store.index("timestamp");index.openKeyCursor().onsuccess=event=>{var cursor=event.target.result;if(!cursor){return callback(null,{type:"remote",db:db,entries:entries})}entries[cursor.primaryKey]={"timestamp":cursor.key};cursor.continue()}}catch(e){return callback(e)}})},loadLocalEntry:(path,callback)=>{var stat,node;try{var lookup=FS.lookupPath(path);node=lookup.node;stat=FS.stat(path)}catch(e){return callback(e)}if(FS.isDir(stat.mode)){return callback(null,{"timestamp":stat.mtime,"mode":stat.mode})}else if(FS.isFile(stat.mode)){node.contents=MEMFS.getFileDataAsTypedArray(node);return callback(null,{"timestamp":stat.mtime,"mode":stat.mode,"contents":node.contents})}else{return callback(new Error("node type not supported"))}},storeLocalEntry:(path,entry,callback)=>{try{if(FS.isDir(entry["mode"])){FS.mkdirTree(path,entry["mode"])}else if(FS.isFile(entry["mode"])){FS.writeFile(path,entry["contents"],{canOwn:true})}else{return callback(new Error("node type not supported"))}FS.chmod(path,entry["mode"]);FS.utime(path,entry["timestamp"],entry["timestamp"])}catch(e){return callback(e)}callback(null)},removeLocalEntry:(path,callback)=>{try{var stat=FS.stat(path);if(FS.isDir(stat.mode)){FS.rmdir(path)}else if(FS.isFile(stat.mode)){FS.unlink(path)}}catch(e){return callback(e)}callback(null)},loadRemoteEntry:(store,path,callback)=>{var req=store.get(path);req.onsuccess=event=>{callback(null,event.target.result)};req.onerror=e=>{callback(this.error);e.preventDefault()}},storeRemoteEntry:(store,path,entry,callback)=>{try{var req=store.put(entry,path)}catch(e){callback(e);return}req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},removeRemoteEntry:(store,path,callback)=>{var req=store.delete(path);req.onsuccess=()=>{callback(null)};req.onerror=e=>{callback(this.error);e.preventDefault()}},reconcile:(src,dst,callback)=>{var total=0;var create=[];Object.keys(src.entries).forEach(function(key){var e=src.entries[key];var e2=dst.entries[key];if(!e2||e["timestamp"].getTime()!=e2["timestamp"].getTime()){create.push(key);total++}});var remove=[];Object.keys(dst.entries).forEach(function(key){if(!src.entries[key]){remove.push(key);total++}});if(!total){return callback(null)}var errored=false;var db=src.type==="remote"?src.db:dst.db;var transaction=db.transaction([IDBFS.DB_STORE_NAME],"readwrite");var store=transaction.objectStore(IDBFS.DB_STORE_NAME);function done(err){if(err&&!errored){errored=true;return callback(err)}}transaction.onerror=e=>{done(this.error);e.preventDefault()};transaction.oncomplete=e=>{if(!errored){callback(null)}};create.sort().forEach(path=>{if(dst.type==="local"){IDBFS.loadRemoteEntry(store,path,(err,entry)=>{if(err)return done(err);IDBFS.storeLocalEntry(path,entry,done)})}else{IDBFS.loadLocalEntry(path,(err,entry)=>{if(err)return done(err);IDBFS.storeRemoteEntry(store,path,entry,done)})}});remove.sort().reverse().forEach(path=>{if(dst.type==="local"){IDBFS.removeLocalEntry(path,done)}else{IDBFS.removeRemoteEntry(store,path,done)}})}};var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:(path,mode,dev)=>{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS,"IDBFS":IDBFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;_fflush(0);for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},getMode:(canRead,canWrite)=>{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:(parent,name,input,output)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:(stream,buffer,offset,length,pos)=>{for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile:obj=>{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall__newselect(nfds,readfds,writefds,exceptfds,timeout){try{var total=0;var srcReadLow=readfds?HEAP32[readfds>>2]:0,srcReadHigh=readfds?HEAP32[readfds+4>>2]:0;var srcWriteLow=writefds?HEAP32[writefds>>2]:0,srcWriteHigh=writefds?HEAP32[writefds+4>>2]:0;var srcExceptLow=exceptfds?HEAP32[exceptfds>>2]:0,srcExceptHigh=exceptfds?HEAP32[exceptfds+4>>2]:0;var dstReadLow=0,dstReadHigh=0;var dstWriteLow=0,dstWriteHigh=0;var dstExceptLow=0,dstExceptHigh=0;var allLow=(readfds?HEAP32[readfds>>2]:0)|(writefds?HEAP32[writefds>>2]:0)|(exceptfds?HEAP32[exceptfds>>2]:0);var allHigh=(readfds?HEAP32[readfds+4>>2]:0)|(writefds?HEAP32[writefds+4>>2]:0)|(exceptfds?HEAP32[exceptfds+4>>2]:0);var check=function(fd,low,high,val){return fd<32?low&val:high&val};for(var fd=0;fd<nfds;fd++){var mask=1<<fd%32;if(!check(fd,allLow,allHigh,mask)){continue}var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var flags=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){flags=stream.stream_ops.poll(stream)}if(flags&1&&check(fd,srcReadLow,srcReadHigh,mask)){fd<32?dstReadLow=dstReadLow|mask:dstReadHigh=dstReadHigh|mask;total++}if(flags&4&&check(fd,srcWriteLow,srcWriteHigh,mask)){fd<32?dstWriteLow=dstWriteLow|mask:dstWriteHigh=dstWriteHigh|mask;total++}if(flags&2&&check(fd,srcExceptLow,srcExceptHigh,mask)){fd<32?dstExceptLow=dstExceptLow|mask:dstExceptHigh=dstExceptHigh|mask;total++}}if(readfds){HEAP32[readfds>>2]=dstReadLow;HEAP32[readfds+4>>2]=dstReadHigh}if(writefds){HEAP32[writefds>>2]=dstWriteLow;HEAP32[writefds+4>>2]=dstWriteHigh}if(exceptfds){HEAP32[exceptfds>>2]=dstExceptLow;HEAP32[exceptfds+4>>2]=dstExceptHigh}return total}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}var SOCKFS={mount:function(mount){Module["websocket"]=Module["websocket"]&&"object"===typeof Module["websocket"]?Module["websocket"]:{};Module["websocket"]._callbacks={};Module["websocket"]["on"]=function(event,callback){if("function"===typeof callback){this._callbacks[event]=callback}return this};Module["websocket"].emit=function(event,param){if("function"===typeof this._callbacks[event]){this._callbacks[event].call(this,param)}};return FS.createNode(null,"/",16384|511,0)},createSocket:function(family,type,protocol){type&=~526336;var streaming=type==1;if(streaming&&protocol&&protocol!=6){throw new FS.ErrnoError(66)}var sock={family:family,type:type,protocol:protocol,server:null,error:null,peers:{},pending:[],recv_queue:[],sock_ops:SOCKFS.websocket_sock_ops};var name=SOCKFS.nextname();var node=FS.createNode(SOCKFS.root,name,49152,0);node.sock=sock;var stream=FS.createStream({path:name,node:node,flags:2,seekable:false,stream_ops:SOCKFS.stream_ops});sock.stream=stream;return sock},getSocket:function(fd){var stream=FS.getStream(fd);if(!stream||!FS.isSocket(stream.node.mode)){return null}return stream.node.sock},stream_ops:{poll:function(stream){var sock=stream.node.sock;return sock.sock_ops.poll(sock)},ioctl:function(stream,request,varargs){var sock=stream.node.sock;return sock.sock_ops.ioctl(sock,request,varargs)},read:function(stream,buffer,offset,length,position){var sock=stream.node.sock;var msg=sock.sock_ops.recvmsg(sock,length);if(!msg){return 0}buffer.set(msg.buffer,offset);return msg.buffer.length},write:function(stream,buffer,offset,length,position){var sock=stream.node.sock;return sock.sock_ops.sendmsg(sock,buffer,offset,length)},close:function(stream){var sock=stream.node.sock;sock.sock_ops.close(sock)}},nextname:function(){if(!SOCKFS.nextname.current){SOCKFS.nextname.current=0}return"socket["+SOCKFS.nextname.current+++"]"},websocket_sock_ops:{createPeer:function(sock,addr,port){var ws;if(typeof addr=="object"){ws=addr;addr=null;port=null}if(ws){if(ws._socket){addr=ws._socket.remoteAddress;port=ws._socket.remotePort}else{var result=/ws[s]?:\/\/([^:]+):(\d+)/.exec(ws.url);if(!result){throw new Error("WebSocket URL must be in the format ws(s)://address:port")}addr=result[1];port=parseInt(result[2],10)}}else{try{var runtimeConfig=Module["websocket"]&&"object"===typeof Module["websocket"];var url="ws:#".replace("#","//");if(runtimeConfig){if("string"===typeof Module["websocket"]["url"]){url=Module["websocket"]["url"]}}if(url==="ws://"||url==="wss://"){var parts=addr.split("/");url=url+parts[0]+":"+port+"/"+parts.slice(1).join("/")}var subProtocols="binary";if(runtimeConfig){if("string"===typeof Module["websocket"]["subprotocol"]){subProtocols=Module["websocket"]["subprotocol"]}}var opts=undefined;if(subProtocols!=="null"){subProtocols=subProtocols.replace(/^ +| +$/g,"").split(/ *, */);opts=subProtocols}if(runtimeConfig&&null===Module["websocket"]["subprotocol"]){subProtocols="null";opts=undefined}var WebSocketConstructor;{WebSocketConstructor=WebSocket}ws=new WebSocketConstructor(url,opts);ws.binaryType="arraybuffer"}catch(e){throw new FS.ErrnoError(23)}}var peer={addr:addr,port:port,socket:ws,dgram_send_queue:[]};SOCKFS.websocket_sock_ops.addPeer(sock,peer);SOCKFS.websocket_sock_ops.handlePeerEvents(sock,peer);if(sock.type===2&&typeof sock.sport!="undefined"){peer.dgram_send_queue.push(new Uint8Array([255,255,255,255,"p".charCodeAt(0),"o".charCodeAt(0),"r".charCodeAt(0),"t".charCodeAt(0),(sock.sport&65280)>>8,sock.sport&255]))}return peer},getPeer:function(sock,addr,port){return sock.peers[addr+":"+port]},addPeer:function(sock,peer){sock.peers[peer.addr+":"+peer.port]=peer},removePeer:function(sock,peer){delete sock.peers[peer.addr+":"+peer.port]},handlePeerEvents:function(sock,peer){var first=true;var handleOpen=function(){Module["websocket"].emit("open",sock.stream.fd);try{var queued=peer.dgram_send_queue.shift();while(queued){peer.socket.send(queued);queued=peer.dgram_send_queue.shift()}}catch(e){peer.socket.close()}};function handleMessage(data){if(typeof data=="string"){var encoder=new TextEncoder;data=encoder.encode(data)}else{assert(data.byteLength!==undefined);if(data.byteLength==0){return}else{data=new Uint8Array(data)}}var wasfirst=first;first=false;if(wasfirst&&data.length===10&&data[0]===255&&data[1]===255&&data[2]===255&&data[3]===255&&data[4]==="p".charCodeAt(0)&&data[5]==="o".charCodeAt(0)&&data[6]==="r".charCodeAt(0)&&data[7]==="t".charCodeAt(0)){var newport=data[8]<<8|data[9];SOCKFS.websocket_sock_ops.removePeer(sock,peer);peer.port=newport;SOCKFS.websocket_sock_ops.addPeer(sock,peer);return}sock.recv_queue.push({addr:peer.addr,port:peer.port,data:data});Module["websocket"].emit("message",sock.stream.fd)}if(ENVIRONMENT_IS_NODE){peer.socket.on("open",handleOpen);peer.socket.on("message",function(data,isBinary){if(!isBinary){return}handleMessage(new Uint8Array(data).buffer)});peer.socket.on("close",function(){Module["websocket"].emit("close",sock.stream.fd)});peer.socket.on("error",function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])})}else{peer.socket.onopen=handleOpen;peer.socket.onclose=function(){Module["websocket"].emit("close",sock.stream.fd)};peer.socket.onmessage=function peer_socket_onmessage(event){handleMessage(event.data)};peer.socket.onerror=function(error){sock.error=14;Module["websocket"].emit("error",[sock.stream.fd,sock.error,"ECONNREFUSED: Connection refused"])}}},poll:function(sock){if(sock.type===1&&sock.server){return sock.pending.length?64|1:0}var mask=0;var dest=sock.type===1?SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport):null;if(sock.recv_queue.length||!dest||dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=64|1}if(!dest||dest&&dest.socket.readyState===dest.socket.OPEN){mask|=4}if(dest&&dest.socket.readyState===dest.socket.CLOSING||dest&&dest.socket.readyState===dest.socket.CLOSED){mask|=16}return mask},ioctl:function(sock,request,arg){switch(request){case 21531:var bytes=0;if(sock.recv_queue.length){bytes=sock.recv_queue[0].data.length}HEAP32[arg>>2]=bytes;return 0;default:return 28}},close:function(sock){if(sock.server){try{sock.server.close()}catch(e){}sock.server=null}var peers=Object.keys(sock.peers);for(var i=0;i<peers.length;i++){var peer=sock.peers[peers[i]];try{peer.socket.close()}catch(e){}SOCKFS.websocket_sock_ops.removePeer(sock,peer)}return 0},bind:function(sock,addr,port){if(typeof sock.saddr!="undefined"||typeof sock.sport!="undefined"){throw new FS.ErrnoError(28)}sock.saddr=addr;sock.sport=port;if(sock.type===2){if(sock.server){sock.server.close();sock.server=null}try{sock.sock_ops.listen(sock,0)}catch(e){if(!(e instanceof FS.ErrnoError))throw e;if(e.errno!==138)throw e}}},connect:function(sock,addr,port){if(sock.server){throw new FS.ErrnoError(138)}if(typeof sock.daddr!="undefined"&&typeof sock.dport!="undefined"){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(dest){if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(7)}else{throw new FS.ErrnoError(30)}}}var peer=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port);sock.daddr=peer.addr;sock.dport=peer.port;throw new FS.ErrnoError(26)},listen:function(sock,backlog){if(!ENVIRONMENT_IS_NODE){throw new FS.ErrnoError(138)}},accept:function(listensock){if(!listensock.server||!listensock.pending.length){throw new FS.ErrnoError(28)}var newsock=listensock.pending.shift();newsock.stream.flags=listensock.stream.flags;return newsock},getname:function(sock,peer){var addr,port;if(peer){if(sock.daddr===undefined||sock.dport===undefined){throw new FS.ErrnoError(53)}addr=sock.daddr;port=sock.dport}else{addr=sock.saddr||0;port=sock.sport||0}return{addr:addr,port:port}},sendmsg:function(sock,buffer,offset,length,addr,port){if(sock.type===2){if(addr===undefined||port===undefined){addr=sock.daddr;port=sock.dport}if(addr===undefined||port===undefined){throw new FS.ErrnoError(17)}}else{addr=sock.daddr;port=sock.dport}var dest=SOCKFS.websocket_sock_ops.getPeer(sock,addr,port);if(sock.type===1){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){throw new FS.ErrnoError(53)}else if(dest.socket.readyState===dest.socket.CONNECTING){throw new FS.ErrnoError(6)}}if(ArrayBuffer.isView(buffer)){offset+=buffer.byteOffset;buffer=buffer.buffer}var data;data=buffer.slice(offset,offset+length);if(sock.type===2){if(!dest||dest.socket.readyState!==dest.socket.OPEN){if(!dest||dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){dest=SOCKFS.websocket_sock_ops.createPeer(sock,addr,port)}dest.dgram_send_queue.push(data);return length}}try{dest.socket.send(data);return length}catch(e){throw new FS.ErrnoError(28)}},recvmsg:function(sock,length){if(sock.type===1&&sock.server){throw new FS.ErrnoError(53)}var queued=sock.recv_queue.shift();if(!queued){if(sock.type===1){var dest=SOCKFS.websocket_sock_ops.getPeer(sock,sock.daddr,sock.dport);if(!dest){throw new FS.ErrnoError(53)}else if(dest.socket.readyState===dest.socket.CLOSING||dest.socket.readyState===dest.socket.CLOSED){return null}else{throw new FS.ErrnoError(6)}}else{throw new FS.ErrnoError(6)}}var queuedLength=queued.data.byteLength||queued.data.length;var queuedOffset=queued.data.byteOffset||0;var queuedBuffer=queued.data.buffer||queued.data;var bytesRead=Math.min(length,queuedLength);var res={buffer:new Uint8Array(queuedBuffer,queuedOffset,bytesRead),addr:queued.addr,port:queued.port};if(sock.type===1&&bytesRead<queuedLength){var bytesRemaining=queuedLength-bytesRead;queued.data=new Uint8Array(queuedBuffer,queuedOffset+bytesRead,bytesRemaining);sock.recv_queue.unshift(queued)}return res}}};function getSocketFromFD(fd){var socket=SOCKFS.getSocket(fd);if(!socket)throw new FS.ErrnoError(8);return socket}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function inetPton4(str){var b=str.split(".");for(var i=0;i<4;i++){var tmp=Number(b[i]);if(isNaN(tmp))return null;b[i]=tmp}return(b[0]|b[1]<<8|b[2]<<16|b[3]<<24)>>>0}function jstoi_q(str){return parseInt(str)}function inetPton6(str){var words;var w,offset,z;var valid6regx=/^((?=.*::)(?!.*::.+::)(::)?([\dA-F]{1,4}:(:|\b)|){5}|([\dA-F]{1,4}:){6})((([\dA-F]{1,4}((?!\3)::|:\b|$))|(?!\2\3)){2}|(((2[0-4]|1\d|[1-9])?\d|25[0-5])\.?\b){4})$/i;var parts=[];if(!valid6regx.test(str)){return null}if(str==="::"){return[0,0,0,0,0,0,0,0]}if(str.startsWith("::")){str=str.replace("::","Z:")}else{str=str.replace("::",":Z:")}if(str.indexOf(".")>0){str=str.replace(new RegExp("[.]","g"),":");words=str.split(":");words[words.length-4]=jstoi_q(words[words.length-4])+jstoi_q(words[words.length-3])*256;words[words.length-3]=jstoi_q(words[words.length-2])+jstoi_q(words[words.length-1])*256;words=words.slice(0,words.length-2)}else{words=str.split(":")}offset=0;z=0;for(w=0;w<words.length;w++){if(typeof words[w]=="string"){if(words[w]==="Z"){for(z=0;z<8-words.length+1;z++){parts[w+z]=0}offset=z-1}else{parts[w+offset]=_htons(parseInt(words[w],16))}}else{parts[w+offset]=words[w]}}return[parts[1]<<16|parts[0],parts[3]<<16|parts[2],parts[5]<<16|parts[4],parts[7]<<16|parts[6]]}function writeSockaddr(sa,family,addr,port,addrlen){switch(family){case 2:addr=inetPton4(addr);zeroMemory(sa,16);if(addrlen){HEAP32[addrlen>>2]=16}HEAP16[sa>>1]=family;HEAP32[sa+4>>2]=addr;HEAP16[sa+2>>1]=_htons(port);break;case 10:addr=inetPton6(addr);zeroMemory(sa,28);if(addrlen){HEAP32[addrlen>>2]=28}HEAP32[sa>>2]=family;HEAP32[sa+8>>2]=addr[0];HEAP32[sa+12>>2]=addr[1];HEAP32[sa+16>>2]=addr[2];HEAP32[sa+20>>2]=addr[3];HEAP16[sa+2>>1]=_htons(port);break;default:return 5}return 0}var DNS={address_map:{id:1,addrs:{},names:{}},lookup_name:function(name){var res=inetPton4(name);if(res!==null){return name}res=inetPton6(name);if(res!==null){return name}var addr;if(DNS.address_map.addrs[name]){addr=DNS.address_map.addrs[name]}else{var id=DNS.address_map.id++;assert(id<65535,"exceeded max address mappings of 65535");addr="172.29."+(id&255)+"."+(id&65280);DNS.address_map.names[addr]=name;DNS.address_map.addrs[name]=addr}return addr},lookup_addr:function(addr){if(DNS.address_map.names[addr]){return DNS.address_map.names[addr]}return null}};function ___syscall_accept4(fd,addr,addrlen,flags){try{var sock=getSocketFromFD(fd);var newsock=sock.sock_ops.accept(sock);if(addr){var errno=writeSockaddr(addr,newsock.family,DNS.lookup_name(newsock.daddr),newsock.dport,addrlen)}return newsock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function inetNtop4(addr){return(addr&255)+"."+(addr>>8&255)+"."+(addr>>16&255)+"."+(addr>>24&255)}function inetNtop6(ints){var str="";var word=0;var longest=0;var lastzero=0;var zstart=0;var len=0;var i=0;var parts=[ints[0]&65535,ints[0]>>16,ints[1]&65535,ints[1]>>16,ints[2]&65535,ints[2]>>16,ints[3]&65535,ints[3]>>16];var hasipv4=true;var v4part="";for(i=0;i<5;i++){if(parts[i]!==0){hasipv4=false;break}}if(hasipv4){v4part=inetNtop4(parts[6]|parts[7]<<16);if(parts[5]===-1){str="::ffff:";str+=v4part;return str}if(parts[5]===0){str="::";if(v4part==="0.0.0.0")v4part="";if(v4part==="0.0.0.1")v4part="1";str+=v4part;return str}}for(word=0;word<8;word++){if(parts[word]===0){if(word-lastzero>1){len=0}lastzero=word;len++}if(len>longest){longest=len;zstart=word-longest+1}}for(word=0;word<8;word++){if(longest>1){if(parts[word]===0&&word>=zstart&&word<zstart+longest){if(word===zstart){str+=":";if(zstart===0)str+=":"}continue}}str+=Number(_ntohs(parts[word]&65535)).toString(16);str+=word<7?":":""}return str}function readSockaddr(sa,salen){var family=HEAP16[sa>>1];var port=_ntohs(HEAPU16[sa+2>>1]);var addr;switch(family){case 2:if(salen!==16){return{errno:28}}addr=HEAP32[sa+4>>2];addr=inetNtop4(addr);break;case 10:if(salen!==28){return{errno:28}}addr=[HEAP32[sa+8>>2],HEAP32[sa+12>>2],HEAP32[sa+16>>2],HEAP32[sa+20>>2]];addr=inetNtop6(addr);break;default:return{errno:5}}return{family:family,addr:addr,port:port}}function getSocketAddress(addrp,addrlen,allowNull){if(allowNull&&addrp===0)return null;var info=readSockaddr(addrp,addrlen);if(info.errno)throw new FS.ErrnoError(info.errno);info.addr=DNS.lookup_addr(info.addr)||info.addr;return info}function ___syscall_bind(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.bind(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_chmod(path,mode){try{path=SYSCALLS.getStr(path);FS.chmod(path,mode);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_connect(fd,addr,addrlen){try{var sock=getSocketFromFD(fd);var info=getSocketAddress(addr,addrlen);sock.sock_ops.connect(sock,info.addr,info.port);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_faccessat(dirfd,path,amode,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(amode&~7){return-28}var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd)+1;if(size<cwdLengthInBytes)return-68;stringToUTF8(cwd,buf,size);return cwdLengthInBytes}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getdents64(fd,dirp,count){try{var stream=SYSCALLS.getStreamFromFD(fd);if(!stream.getdents){stream.getdents=FS.readdir(stream.path)}var struct_size=280;var pos=0;var off=FS.llseek(stream,0,1);var idx=Math.floor(off/struct_size);while(idx<stream.getdents.length&&pos+struct_size<=count){var id;var type;var name=stream.getdents[idx];if(name==="."){id=stream.node.id;type=4}else if(name===".."){var lookup=FS.lookupPath(stream.path,{parent:true});id=lookup.node.id;type=4}else{var child=FS.lookupNode(stream.node,name);id=child.id;type=FS.isChrdev(child.mode)?2:FS.isDir(child.mode)?4:FS.isLink(child.mode)?10:8}tempI64=[id>>>0,(tempDouble=id,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos>>2]=tempI64[0],HEAP32[dirp+pos+4>>2]=tempI64[1];tempI64=[(idx+1)*struct_size>>>0,(tempDouble=(idx+1)*struct_size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[dirp+pos+8>>2]=tempI64[0],HEAP32[dirp+pos+12>>2]=tempI64[1];HEAP16[dirp+pos+16>>1]=280;HEAP8[dirp+pos+18>>0]=type;stringToUTF8(name,dirp+pos+19,256);pos+=struct_size;idx+=1}FS.llseek(stream,idx*struct_size,0);return pos}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getsockname(fd,addr,addrlen){try{err("__syscall_getsockname "+fd);var sock=getSocketFromFD(fd);var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(sock.saddr||"0.0.0.0"),sock.sport,addrlen);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_getsockopt(fd,level,optname,optval,optlen){try{var sock=getSocketFromFD(fd);if(level===1){if(optname===4){HEAP32[optval>>2]=sock.error;HEAP32[optlen>>2]=4;sock.error=null;return 0}}return-50}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_listen(fd,backlog){try{var sock=getSocketFromFD(fd);sock.sock_ops.listen(sock,backlog);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_lstat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.lstat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_mkdirat(dirfd,path,mode){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_newfstatat(dirfd,path,buf,flags){try{path=SYSCALLS.getStr(path);var nofollow=flags&256;var allowEmpty=flags&4096;flags=flags&~4352;path=SYSCALLS.calculateAt(dirfd,path,allowEmpty);return SYSCALLS.doStat(nofollow?FS.lstat:FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_poll(fds,nfds,timeout){try{var nonzero=0;for(var i=0;i<nfds;i++){var pollfd=fds+8*i;var fd=HEAP32[pollfd>>2];var events=HEAP16[pollfd+4>>1];var mask=32;var stream=FS.getStream(fd);if(stream){mask=SYSCALLS.DEFAULT_POLLMASK;if(stream.stream_ops.poll){mask=stream.stream_ops.poll(stream)}}mask&=events|8|16;if(mask)nonzero++;HEAP16[pollfd+6>>1]=mask}return nonzero}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_readlinkat(dirfd,path,buf,bufsize){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_recvfrom(fd,buf,len,flags,addr,addrlen){try{var sock=getSocketFromFD(fd);var msg=sock.sock_ops.recvmsg(sock,len);if(!msg)return 0;if(addr){var errno=writeSockaddr(addr,sock.family,DNS.lookup_name(msg.addr),msg.port,addrlen)}HEAPU8.set(msg.buffer,buf);return msg.buffer.byteLength}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_renameat(olddirfd,oldpath,newdirfd,newpath){try{oldpath=SYSCALLS.getStr(oldpath);newpath=SYSCALLS.getStr(newpath);oldpath=SYSCALLS.calculateAt(olddirfd,oldpath);newpath=SYSCALLS.calculateAt(newdirfd,newpath);FS.rename(oldpath,newpath);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_rmdir(path){try{path=SYSCALLS.getStr(path);FS.rmdir(path);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_sendto(fd,message,length,flags,addr,addr_len){try{var sock=getSocketFromFD(fd);var dest=getSocketAddress(addr,addr_len,true);if(!dest){return FS.write(sock.stream,HEAP8,message,length)}else{return sock.sock_ops.sendmsg(sock,HEAP8,message,length,dest.addr,dest.port)}}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_socket(domain,type,protocol){try{var sock=SOCKFS.createSocket(domain,type,protocol);return sock.stream.fd}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_stat64(path,buf){try{path=SYSCALLS.getStr(path);return SYSCALLS.doStat(FS.stat,path,buf)}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_statfs64(path,size,buf){try{path=SYSCALLS.getStr(path);HEAP32[buf+4>>2]=4096;HEAP32[buf+40>>2]=4096;HEAP32[buf+8>>2]=1e6;HEAP32[buf+12>>2]=5e5;HEAP32[buf+16>>2]=5e5;HEAP32[buf+20>>2]=FS.nextInode;HEAP32[buf+24>>2]=1e6;HEAP32[buf+28>>2]=42;HEAP32[buf+44>>2]=2;HEAP32[buf+36>>2]=255;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_symlink(target,linkpath){try{target=SYSCALLS.getStr(target);linkpath=SYSCALLS.getStr(linkpath);FS.symlink(target,linkpath);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function ___syscall_unlinkat(dirfd,path,flags){try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);if(flags===0){FS.unlink(path)}else if(flags===512){FS.rmdir(path)}else{abort("Invalid flags passed to unlinkat")}return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return-e.errno}}function __dlinit(main_dso_handle){}var dlopenMissingError="To use dlopen, you need enable dynamic linking, see https://github.com/emscripten-core/emscripten/wiki/Linking";function __dlopen_js(filename,flag){abort(dlopenMissingError)}function __dlsym_js(handle,symbol){abort(dlopenMissingError)}function __emscripten_date_now(){return Date.now()}var nowIsMonotonic=true;function __emscripten_get_now_is_monotonic(){return nowIsMonotonic}function __emscripten_throw_longjmp(){throw Infinity}function __gmtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getUTCSeconds();HEAP32[tmPtr+4>>2]=date.getUTCMinutes();HEAP32[tmPtr+8>>2]=date.getUTCHours();HEAP32[tmPtr+12>>2]=date.getUTCDate();HEAP32[tmPtr+16>>2]=date.getUTCMonth();HEAP32[tmPtr+20>>2]=date.getUTCFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getUTCDay();var start=Date.UTC(date.getUTCFullYear(),0,1,0,0,0,0);var yday=(date.getTime()-start)/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday}function __localtime_js(time,tmPtr){var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst}function _tzset_impl(timezone,daylight,tzname){var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);var winterOffset=winter.getTimezoneOffset();var summerOffset=summer.getTimezoneOffset();var stdTimezoneOffset=Math.max(winterOffset,summerOffset);HEAP32[timezone>>2]=stdTimezoneOffset*60;HEAP32[daylight>>2]=Number(winterOffset!=summerOffset);function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocateUTF8(winterName);var summerNamePtr=allocateUTF8(summerName);if(summerOffset<winterOffset){HEAPU32[tzname>>2]=winterNamePtr;HEAPU32[tzname+4>>2]=summerNamePtr}else{HEAPU32[tzname>>2]=summerNamePtr;HEAPU32[tzname+4>>2]=winterNamePtr}}function __tzset_js(timezone,daylight,tzname){if(__tzset_js.called)return;__tzset_js.called=true;_tzset_impl(timezone,daylight,tzname)}function _abort(){abort("")}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){runtimeKeepalivePush();Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate=="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}var _emscripten_get_now;_emscripten_get_now=()=>performance.now();function _emscripten_webgl_do_commit_frame(){if(!GL.currentContext||!GL.currentContext.GLctx){return-3}if(GL.currentContext.defaultFbo){GL.blitOffscreenFramebuffer(GL.currentContext);return 0}if(!GL.currentContext.attributes.explicitSwapControl){return-3}return 0}function _emscripten_webgl_commit_frame(){return _emscripten_webgl_do_commit_frame()}function runtimeKeepalivePush(){runtimeKeepaliveCounter+=1}function _exit(status){exit(status)}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId<Browser.mainLoop.currentlyRunningMainloop){runtimeKeepalivePop();maybeExit();return false}return true}Browser.mainLoop.running=false;Browser.mainLoop.runner=function Browser_mainLoop_runner(){if(ABORT)return;if(Browser.mainLoop.queue.length>0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL=="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}function callUserCallback(func,synchronous){if(runtimeExited||ABORT){return}if(synchronous){func();return}try{func();maybeExit()}catch(e){handleException(e)}}function runtimeKeepalivePop(){runtimeKeepaliveCounter-=1}function safeSetTimeout(func,timeout){runtimeKeepalivePush();return setTimeout(function(){runtimeKeepalivePop();callUserCallback(func)},timeout)}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining<expected){Module["setStatus"](message+" ("+(expected-remaining)+"/"+expected+")")}else{Module["setStatus"](message)}}else{Module["setStatus"]("")}}},runIter:function(func){if(ABORT)return;if(Module["preMainLoop"]){var preRet=Module["preMainLoop"]();if(preRet===false){return}}callUserCallback(func);if(Module["postMainLoop"])Module["postMainLoop"]()}},isFullscreen:false,pointerLock:false,moduleContextCreatedCallbacks:[],workers:[],init:function(){if(!Module["preloadPlugins"])Module["preloadPlugins"]=[];if(Browser.initted)return;Browser.initted=true;try{new Blob;Browser.hasBlobConstructor=true}catch(e){Browser.hasBlobConstructor=false;out("warning: no blob constructor, cannot create blobs with mimetypes")}Browser.BlobBuilder=typeof MozBlobBuilder!="undefined"?MozBlobBuilder:typeof WebKitBlobBuilder!="undefined"?WebKitBlobBuilder:!Browser.hasBlobConstructor?out("warning: no BlobBuilder"):null;Browser.URLObject=typeof window!="undefined"?window.URL?window.URL:window.webkitURL:undefined;if(!Module.noImageDecoding&&typeof Browser.URLObject=="undefined"){out("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available.");Module.noImageDecoding=true}var imagePlugin={};imagePlugin["canHandle"]=function imagePlugin_canHandle(name){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(name)};imagePlugin["handle"]=function imagePlugin_handle(byteArray,name,onload,onerror){var b=null;if(Browser.hasBlobConstructor){try{b=new Blob([byteArray],{type:Browser.getMimetype(name)});if(b.size!==byteArray.length){b=new Blob([new Uint8Array(byteArray).buffer],{type:Browser.getMimetype(name)})}}catch(e){warnOnce("Blob constructor present but fails: "+e+"; falling back to blob builder")}}if(!b){var bb=new Browser.BlobBuilder;bb.append(new Uint8Array(byteArray).buffer);b=bb.getBlob()}var url=Browser.URLObject.createObjectURL(b);var img=new Image;img.onload=()=>{assert(img.complete,"Image "+name+" could not be decoded");var canvas=document.createElement("canvas");canvas.width=img.width;canvas.height=img.height;var ctx=canvas.getContext("2d");ctx.drawImage(img,0,0);preloadedImages[name]=canvas;Browser.URLObject.revokeObjectURL(url);if(onload)onload(byteArray)};img.onerror=event=>{out("Image "+url+" could not be decoded");if(onerror)onerror()};img.src=url};Module["preloadPlugins"].push(imagePlugin);var audioPlugin={};audioPlugin["canHandle"]=function audioPlugin_canHandle(name){return!Module.noAudioDecoding&&name.substr(-4)in{".ogg":1,".wav":1,".mp3":1}};audioPlugin["handle"]=function audioPlugin_handle(byteArray,name,onload,onerror){var done=false;function finish(audio){if(done)return;done=true;preloadedAudios[name]=audio;if(onload)onload(byteArray)}function fail(){if(done)return;done=true;preloadedAudios[name]=new Audio;if(onerror)onerror()}if(Browser.hasBlobConstructor){try{var b=new Blob([byteArray],{type:Browser.getMimetype(name)})}catch(e){return fail()}var url=Browser.URLObject.createObjectURL(b);var audio=new Audio;audio.addEventListener("canplaythrough",function(){finish(audio)},false);audio.onerror=function audio_onerror(event){if(done)return;out("warning: browser could not fully decode audio "+name+", trying slower base64 approach");function encode64(data){var BASE="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var PAD="=";var ret="";var leftchar=0;var leftbits=0;for(var i=0;i<data.length;i++){leftchar=leftchar<<8|data[i];leftbits+=8;while(leftbits>=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},handledByPreloadPlugin:function(byteArray,fullname,finish,onerror){Browser.init();var handled=false;Module["preloadPlugins"].forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:typeof WebGL2RenderingContext!="undefined"?2:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx=="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer=="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas=="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame=="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){runtimeKeepalivePush();return Browser.requestAnimationFrame(function(){runtimeKeepalivePop();callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h<Module["forcedAspectRatio"]){w=Math.round(h*Module["forcedAspectRatio"])}else{h=Math.round(w/Module["forcedAspectRatio"])}}if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvas.parentNode&&typeof screen!="undefined"){var factor=Math.min(screen.width/w,screen.height/h);w=Math.round(w*factor);h=Math.round(h*factor)}if(Browser.resizeCanvas){if(canvas.width!=w)canvas.width=w;if(canvas.height!=h)canvas.height=h;if(typeof canvas.style!="undefined"){canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}else{if(canvas.width!=wNative)canvas.width=wNative;if(canvas.height!=hNative)canvas.height=hNative;if(typeof canvas.style!="undefined"){if(w!=wNative||h!=hNative){canvas.style.setProperty("width",w+"px","important");canvas.style.setProperty("height",h+"px","important")}else{canvas.style.removeProperty("width");canvas.style.removeProperty("height")}}}}};function _emscripten_cancel_main_loop(){Browser.mainLoop.pause();Browser.mainLoop.func=null}function _emscripten_force_exit(status){noExitRuntime=false;runtimeKeepaliveCounter=0;exit(status)}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.dibvbi=ctx.getExtension("WEBGL_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(ctx){return!!(ctx.mdibvbi=ctx.getExtension("WEBGL_multi_draw_instanced_base_vertex_base_instance"))}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],samplers:[],transformFeedbacks:[],syncs:[],stringCache:{},stringiCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i<ret;i++){table[i]=null}return ret},getSource:function(shader,count,string,length){var source="";for(var i=0;i<count;++i){var len=length?HEAP32[length+i*4>>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(webGLContextAttributes.renderViaOffscreenBackBuffer)webGLContextAttributes["preserveDrawingBuffer"]=true;if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;function fixedGetContext(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}canvas.getContext=fixedGetContext}var ctx=webGLContextAttributes.majorVersion>1?canvas.getContext("webgl2",webGLContextAttributes):canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},enableOffscreenFramebufferAttributes:function(webGLContextAttributes){webGLContextAttributes.renderViaOffscreenBackBuffer=true;webGLContextAttributes.preserveDrawingBuffer=true},createOffscreenFramebuffer:function(context){var gl=context.GLctx;var fbo=gl.createFramebuffer();gl.bindFramebuffer(36160,fbo);context.defaultFbo=fbo;context.defaultFboForbidBlitFramebuffer=false;if(gl.getContextAttributes().antialias){context.defaultFboForbidBlitFramebuffer=true}else{var firefoxMatch=navigator.userAgent.toLowerCase().match(/firefox\/(\d\d)/);if(firefoxMatch!=null){var firefoxVersion=firefoxMatch[1];context.defaultFboForbidBlitFramebuffer=firefoxVersion<67}}context.defaultColorTarget=gl.createTexture();context.defaultDepthTarget=gl.createRenderbuffer();GL.resizeOffscreenFramebuffer(context);gl.bindTexture(3553,context.defaultColorTarget);gl.texParameteri(3553,10241,9728);gl.texParameteri(3553,10240,9728);gl.texParameteri(3553,10242,33071);gl.texParameteri(3553,10243,33071);gl.texImage2D(3553,0,6408,gl.canvas.width,gl.canvas.height,0,6408,5121,null);gl.framebufferTexture2D(36160,36064,3553,context.defaultColorTarget,0);gl.bindTexture(3553,null);var depthTarget=gl.createRenderbuffer();gl.bindRenderbuffer(36161,context.defaultDepthTarget);gl.renderbufferStorage(36161,33189,gl.canvas.width,gl.canvas.height);gl.framebufferRenderbuffer(36160,36096,36161,context.defaultDepthTarget);gl.bindRenderbuffer(36161,null);var vertices=[-1,-1,-1,1,1,-1,1,1];var vb=gl.createBuffer();gl.bindBuffer(34962,vb);gl.bufferData(34962,new Float32Array(vertices),35044);gl.bindBuffer(34962,null);context.blitVB=vb;var vsCode="attribute vec2 pos;"+"varying lowp vec2 tex;"+"void main() { tex = pos * 0.5 + vec2(0.5,0.5); gl_Position = vec4(pos, 0.0, 1.0); }";var vs=gl.createShader(35633);gl.shaderSource(vs,vsCode);gl.compileShader(vs);var fsCode="varying lowp vec2 tex;"+"uniform sampler2D sampler;"+"void main() { gl_FragColor = texture2D(sampler, tex); }";var fs=gl.createShader(35632);gl.shaderSource(fs,fsCode);gl.compileShader(fs);var blitProgram=gl.createProgram();gl.attachShader(blitProgram,vs);gl.attachShader(blitProgram,fs);gl.linkProgram(blitProgram);context.blitProgram=blitProgram;context.blitPosLoc=gl.getAttribLocation(blitProgram,"pos");gl.useProgram(blitProgram);gl.uniform1i(gl.getUniformLocation(blitProgram,"sampler"),0);gl.useProgram(null);context.defaultVao=undefined;if(gl.createVertexArray){context.defaultVao=gl.createVertexArray();gl.bindVertexArray(context.defaultVao);gl.enableVertexAttribArray(context.blitPosLoc);gl.bindVertexArray(null)}},resizeOffscreenFramebuffer:function(context){var gl=context.GLctx;if(context.defaultColorTarget){var prevTextureBinding=gl.getParameter(32873);gl.bindTexture(3553,context.defaultColorTarget);gl.texImage2D(3553,0,6408,gl.drawingBufferWidth,gl.drawingBufferHeight,0,6408,5121,null);gl.bindTexture(3553,prevTextureBinding)}if(context.defaultDepthTarget){var prevRenderBufferBinding=gl.getParameter(36007);gl.bindRenderbuffer(36161,context.defaultDepthTarget);gl.renderbufferStorage(36161,33189,gl.drawingBufferWidth,gl.drawingBufferHeight);gl.bindRenderbuffer(36161,prevRenderBufferBinding)}},blitOffscreenFramebuffer:function(context){var gl=context.GLctx;var prevScissorTest=gl.getParameter(3089);if(prevScissorTest)gl.disable(3089);var prevFbo=gl.getParameter(36006);if(gl.blitFramebuffer&&!context.defaultFboForbidBlitFramebuffer){gl.bindFramebuffer(36008,context.defaultFbo);gl.bindFramebuffer(36009,null);gl.blitFramebuffer(0,0,gl.canvas.width,gl.canvas.height,0,0,gl.canvas.width,gl.canvas.height,16384,9728)}else{gl.bindFramebuffer(36160,null);var prevProgram=gl.getParameter(35725);gl.useProgram(context.blitProgram);var prevVB=gl.getParameter(34964);gl.bindBuffer(34962,context.blitVB);var prevActiveTexture=gl.getParameter(34016);gl.activeTexture(33984);var prevTextureBinding=gl.getParameter(32873);gl.bindTexture(3553,context.defaultColorTarget);var prevBlend=gl.getParameter(3042);if(prevBlend)gl.disable(3042);var prevCullFace=gl.getParameter(2884);if(prevCullFace)gl.disable(2884);var prevDepthTest=gl.getParameter(2929);if(prevDepthTest)gl.disable(2929);var prevStencilTest=gl.getParameter(2960);if(prevStencilTest)gl.disable(2960);function draw(){gl.vertexAttribPointer(context.blitPosLoc,2,5126,false,0,0);gl.drawArrays(5,0,4)}if(context.defaultVao){var prevVAO=gl.getParameter(34229);gl.bindVertexArray(context.defaultVao);draw();gl.bindVertexArray(prevVAO)}else{var prevVertexAttribPointer={buffer:gl.getVertexAttrib(context.blitPosLoc,34975),size:gl.getVertexAttrib(context.blitPosLoc,34339),stride:gl.getVertexAttrib(context.blitPosLoc,34340),type:gl.getVertexAttrib(context.blitPosLoc,34341),normalized:gl.getVertexAttrib(context.blitPosLoc,34922),pointer:gl.getVertexAttribOffset(context.blitPosLoc,34373)};var maxVertexAttribs=gl.getParameter(34921);var prevVertexAttribEnables=[];for(var i=0;i<maxVertexAttribs;++i){var prevEnabled=gl.getVertexAttrib(i,34338);var wantEnabled=i==context.blitPosLoc;if(prevEnabled&&!wantEnabled){gl.disableVertexAttribArray(i)}if(!prevEnabled&&wantEnabled){gl.enableVertexAttribArray(i)}prevVertexAttribEnables[i]=prevEnabled}draw();for(var i=0;i<maxVertexAttribs;++i){var prevEnabled=prevVertexAttribEnables[i];var nowEnabled=i==context.blitPosLoc;if(prevEnabled&&!nowEnabled){gl.enableVertexAttribArray(i)}if(!prevEnabled&&nowEnabled){gl.disableVertexAttribArray(i)}}gl.bindBuffer(34962,prevVertexAttribPointer.buffer);gl.vertexAttribPointer(context.blitPosLoc,prevVertexAttribPointer.size,prevVertexAttribPointer.type,prevVertexAttribPointer.normalized,prevVertexAttribPointer.stride,prevVertexAttribPointer.offset)}if(prevStencilTest)gl.enable(2960);if(prevDepthTest)gl.enable(2929);if(prevCullFace)gl.enable(2884);if(prevBlend)gl.enable(3042);gl.bindTexture(3553,prevTextureBinding);gl.activeTexture(prevActiveTexture);gl.bindBuffer(34962,prevVB);gl.useProgram(prevProgram)}gl.bindFramebuffer(36160,prevFbo);if(prevScissorTest)gl.enable(3089)},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault=="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}if(webGLContextAttributes.renderViaOffscreenBackBuffer)GL.createOffscreenFramebuffer(context);return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents=="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);__webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx);__webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx);if(context.version>=2){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query_webgl2")}if(context.version<2||!GLctx.disjointTimerQueryExt){GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQuery(target,id){GLctx["beginQuery"](target,GL.queries[id])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBeginTransformFeedback(x0){GLctx["beginTransformFeedback"](x0)}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,GL.buffers[buffer])}function _emscripten_glBindBufferRange(target,index,buffer,offset,ptrsize){GLctx["bindBufferRange"](target,index,GL.buffers[buffer],offset,ptrsize)}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,framebuffer?GL.framebuffers[framebuffer]:GL.currentContext.defaultFbo)}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindSampler(unit,sampler){GLctx["bindSampler"](unit,GL.samplers[sampler])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindTransformFeedback(target,id){GLctx["bindTransformFeedback"](target,GL.transformFeedbacks[id])}function _emscripten_glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _emscripten_glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _emscripten_glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearBufferfi(x0,x1,x2,x3){GLctx["clearBufferfi"](x0,x1,x2,x3)}function _emscripten_glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _emscripten_glClearBufferiv(buffer,drawbuffer,value){GLctx["clearBufferiv"](buffer,drawbuffer,HEAP32,value>>2)}function _emscripten_glClearBufferuiv(buffer,drawbuffer,value){GLctx["clearBufferuiv"](buffer,drawbuffer,HEAPU32,value>>2)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function convertI32PairToI53(lo,hi){return(lo>>>0)+hi*4294967296}function _emscripten_glClientWaitSync(sync,flags,timeoutLo,timeoutHi){return GLctx.clientWaitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexImage3D(target,level,internalFormat,width,height,depth,border,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,imageSize,data)}else{GLctx["compressedTexImage3D"](target,level,internalFormat,width,height,depth,border,HEAPU8,data,imageSize)}}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _emscripten_glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage3D(x0,x1,x2,x3,x4,x5,x6,x7,x8){GLctx["copyTexSubImage3D"](x0,x1,x2,x3,x4,x5,x6,x7,x8)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i<n;i++){var id=HEAP32[buffers+i*4>>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i<n;++i){var id=HEAP32[framebuffers+i*4>>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueries(n,ids){for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var query=GL.queries[id];if(!query)continue;GLctx["deleteQuery"](query);GL.queries[id]=null}}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i<n;i++){var id=HEAP32[renderbuffers+i*4>>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteSamplers(n,samplers){for(var i=0;i<n;i++){var id=HEAP32[samplers+i*4>>2];var sampler=GL.samplers[id];if(!sampler)continue;GLctx["deleteSampler"](sampler);sampler.name=0;GL.samplers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteSync(id){if(!id)return;var sync=GL.syncs[id];if(!sync){GL.recordError(1281);return}GLctx.deleteSync(sync);sync.name=0;GL.syncs[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteTransformFeedbacks(n,ids){for(var i=0;i<n;i++){var id=HEAP32[ids+i*4>>2];var transformFeedback=GL.transformFeedbacks[id];if(!transformFeedback)continue;GLctx["deleteTransformFeedback"](transformFeedback);transformFeedback.name=0;GL.transformFeedbacks[id]=null}}function _emscripten_glDeleteVertexArrays(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedARB(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedEXT(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _emscripten_glDrawArraysInstancedNV(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersEXT(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedARB(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedEXT(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glDrawElementsInstancedNV(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawRangeElements(mode,start,end,count,type,indices){_glDrawElements(mode,count,type,indices)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQuery(x0){GLctx["endQuery"](x0)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _emscripten_glFenceSync(condition,flags){var sync=GLctx.fenceSync(condition,flags);if(sync){var id=GL.getNewId(GL.syncs);sync.name=id;GL.syncs[id]=sync;return id}else{return 0}}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i<n;i++){var buffer=GLctx[createFunction]();var id=buffer&&GL.getNewId(objectTable);if(buffer){buffer.name=id;objectTable[id]=buffer}else{GL.recordError(1282)}HEAP32[buffers+i*4>>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueries(n,ids){__glGenObject(n,ids,"createQuery",GL.queries)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i<n;i++){var query=GLctx.disjointTimerQueryExt["createQueryEXT"]();if(!query){GL.recordError(1282);while(i<n)HEAP32[ids+i++*4>>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenSamplers(n,samplers){__glGenObject(n,samplers,"createSampler",GL.samplers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenTransformFeedbacks(n,ids){__glGenObject(n,ids,"createTransformFeedback",GL.transformFeedbacks)}function _emscripten_glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniformBlockName(program,uniformBlockIndex,bufSize,length,uniformBlockName){program=GL.programs[program];var result=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);if(!result)return;if(uniformBlockName&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(result,uniformBlockName,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}}function _emscripten_glGetActiveUniformBlockiv(program,uniformBlockIndex,pname,params){if(!params){GL.recordError(1281);return}program=GL.programs[program];if(pname==35393){var name=GLctx["getActiveUniformBlockName"](program,uniformBlockIndex);HEAP32[params>>2]=name.length+1;return}var result=GLctx["getActiveUniformBlockParameter"](program,uniformBlockIndex,pname);if(result===null)return;if(pname==35395){for(var i=0;i<result.length;i++){HEAP32[params+i*4>>2]=result[i]}}else{HEAP32[params>>2]=result}}function _emscripten_glGetActiveUniformsiv(program,uniformCount,uniformIndices,pname,params){if(!params){GL.recordError(1281);return}if(uniformCount>0&&uniformIndices==0){GL.recordError(1281);return}program=GL.programs[program];var ids=[];for(var i=0;i<uniformCount;i++){ids.push(HEAP32[uniformIndices+i*4>>2])}var result=GLctx["getActiveUniforms"](program,ids,pname);if(!result)return;var len=result.length;for(var i=0;i<len;i++){HEAP32[params+i*4>>2]=result[i]}}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i<len;++i){var id=GL.shaders.indexOf(result[i]);HEAP32[shaders+i*4>>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 34814:case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break;case 33309:if(GL.currentContext.version<2){GL.recordError(1282);return}var exts=GLctx.getSupportedExtensions()||[];ret=2*exts.length;break;case 33307:case 33308:if(GL.currentContext.version<2){GL.recordError(1280);return}ret=name_==33307?3:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 36662:case 36663:case 35053:case 35055:case 36010:case 35097:case 35869:case 32874:case 36389:case 35983:case 35368:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i<result.length;++i){switch(type){case 0:HEAP32[p+i*4>>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteri64v(target,value,data){if(!data){GL.recordError(1281);return}writeI53ToI64(data,GLctx.getBufferParameter(target,value))}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFragDataLocation(program,name){return GLctx["getFragDataLocation"](GL.programs[program],UTF8ToString(name))}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function emscriptenWebGLGetIndexed(target,index,data,type){if(!data){GL.recordError(1281);return}var result=GLctx["getIndexedParameter"](target,index);var ret;switch(typeof result){case"boolean":ret=result?1:0;break;case"number":ret=result;break;case"object":if(result===null){switch(target){case 35983:case 35368:ret=0;break;default:{GL.recordError(1280);return}}}else if(result instanceof WebGLBuffer){ret=result.name|0}else{GL.recordError(1280);return}break;default:GL.recordError(1280);return}switch(type){case 1:writeI53ToI64(data,ret);break;case 0:HEAP32[data>>2]=ret;break;case 2:HEAPF32[data>>2]=ret;break;case 4:HEAP8[data>>0]=ret?1:0;break;default:throw"internal emscriptenWebGLGetIndexed() error, bad type: "+type}}function _emscripten_glGetInteger64i_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,1)}function _emscripten_glGetInteger64v(name_,p){emscriptenWebGLGet(name_,p,1)}function _emscripten_glGetIntegeri_v(target,index,data){emscriptenWebGLGetIndexed(target,index,data,0)}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetInternalformativ(target,internalformat,pname,bufSize,params){if(bufSize<0){GL.recordError(1281);return}if(!params){GL.recordError(1281);return}var ret=GLctx["getInternalformatParameter"](target,internalformat,pname);if(ret===null)return;for(var i=0;i<ret.length&&i<bufSize;++i){HEAP32[params+i*4>>2]=ret[i]}}function _emscripten_glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i<GLctx.getProgramParameter(program,35718);++i){program.maxUniformLength=Math.max(program.maxUniformLength,GLctx.getActiveUniform(program,i).name.length+1)}}HEAP32[p>>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i<GLctx.getProgramParameter(program,35721);++i){program.maxAttributeLength=Math.max(program.maxAttributeLength,GLctx.getActiveAttrib(program,i).name.length+1)}}HEAP32[p>>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i<GLctx.getProgramParameter(program,35382);++i){program.maxUniformBlockNameLength=Math.max(program.maxUniformBlockNameLength,GLctx.getActiveUniformBlockName(program,i).length+1)}}HEAP32[p>>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx["getQueryParameter"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;if(GL.currentContext.version<2){param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}else{param=GLctx["getQueryParameter"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuiv(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx["getQueryParameter"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryiv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getQuery"](target,pname)}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetSamplerParameterfv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx["getSamplerParameter"](GL.samplers[sampler],pname)}function _emscripten_glGetSamplerParameteriv(sampler,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx["getSamplerParameter"](GL.samplers[sampler],pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _emscripten_glGetSynciv(sync,pname,bufSize,length,values){if(bufSize<0){GL.recordError(1281);return}if(!values){GL.recordError(1281);return}var ret=GLctx.getSyncParameter(GL.syncs[sync],pname);if(ret!==null){HEAP32[values>>2]=ret;if(length)HEAP32[length>>2]=1}}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTransformFeedbackVarying(program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx["getTransformFeedbackVarying"](program,index);if(!info)return;if(name&&bufSize>0){var numBytesWrittenExclNull=stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull}else{if(length)HEAP32[length>>2]=0}if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}function _emscripten_glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _emscripten_glGetUniformIndices(program,uniformCount,uniformNames,uniformIndices){if(!uniformIndices){GL.recordError(1281);return}if(uniformCount>0&&(uniformNames==0||uniformIndices==0)){GL.recordError(1281);return}program=GL.programs[program];var names=[];for(var i=0;i<uniformCount;i++)names.push(UTF8ToString(HEAP32[uniformNames+i*4>>2]));var result=GLctx["getUniformIndices"](program,names);if(!result)return;var len=result.length;for(var i=0;i<len;i++){HEAP32[uniformIndices+i*4>>2]=result[i]}}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i<GLctx.getProgramParameter(program,35718);++i){var u=GLctx.getActiveUniform(program,i);var nm=u.name;var sz=u.size;var lb=webglGetLeftBracePos(nm);var arrayName=lb>0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j<sz;++j){uniformLocsById[id]=j;program.uniformArrayNamesById[id++]=arrayName}}}}function _emscripten_glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex<sizeAndId[0]){arrayIndex+=sizeAndId[1];if(uniformLocsById[arrayIndex]=uniformLocsById[arrayIndex]||GLctx.getUniformLocation(program,name)){return arrayIndex}}}else{GL.recordError(1281)}return-1}function webglGetUniformLocation(location){var p=GLctx.currentProgram;if(p){var webglLoc=p.uniformLocsById[location];if(typeof webglLoc=="number"){p.uniformLocsById[location]=webglLoc=GLctx.getUniformLocation(p,p.uniformArrayNamesById[location]+(webglLoc>0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i<data.length;i++){switch(type){case 0:HEAP32[params+i*4>>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetUniformuiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i<data.length;i++){switch(type){case 0:HEAP32[params+i*4>>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribIiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribIuiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i<numAttachments;i++){list[i]=HEAP32[attachments+i*4>>2]}GLctx["invalidateFramebuffer"](target,list)}function _emscripten_glInvalidateSubFramebuffer(target,numAttachments,attachments,x,y,width,height){var list=tempFixedLengthArray[numAttachments];for(var i=0;i<numAttachments;i++){list[i]=HEAP32[attachments+i*4>>2]}GLctx["invalidateSubFramebuffer"](target,list,x,y,width,height)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQuery(id){var query=GL.queries[id];if(!query)return 0;return GLctx["isQuery"](query)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsSampler(id){var sampler=GL.samplers[id];if(!sampler)return 0;return GLctx["isSampler"](sampler)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsSync(sync){return GLctx.isSync(GL.syncs[sync])}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsTransformFeedback(id){return GLctx["isTransformFeedback"](GL.transformFeedbacks[id])}function _emscripten_glIsVertexArray(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPauseTransformFeedback(){GLctx["pauseTransformFeedback"]()}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _emscripten_glProgramParameteri(program,pname,value){GL.recordError(1280)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function _emscripten_glReadBuffer(x0){GLctx["readBuffer"](x0)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4,26917:2,26918:2,29846:3,29847:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==0)return HEAP8;if(type==1)return HEAPU8;if(type==2)return HEAP16;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922||type==28520||type==30779||type==30782)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<<shift;var sizePerPixel=__colorChannelsInGlTextureFormat(format)*byteSize;var bytes=computeUnpackAlignedImageSize(width,height,sizePerPixel,GL.unpackAlignment);return heap.subarray(pixels>>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _emscripten_glResumeTransformFeedback(){GLctx["resumeTransformFeedback"]()}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glSamplerParameterf(sampler,pname,param){GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameterfv(sampler,pname,params){var param=HEAPF32[params>>2];GLctx["samplerParameterf"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteri(sampler,pname,param){GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glSamplerParameteriv(sampler,pname,params){var param=HEAP32[params>>2];GLctx["samplerParameteri"](GL.samplers[sampler],pname,param)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _emscripten_glTexStorage3D(x0,x1,x2,x3,x4,x5){GLctx["texStorage3D"](x0,x1,x2,x3,x4,x5)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _emscripten_glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i<count;i++)vars.push(UTF8ToString(HEAP32[varyings+i*4>>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1fv(webglGetUniformLocation(location),HEAPF32,value>>2,count);return}if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i<count;++i){view[i]=HEAPF32[value+4*i>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i<count;++i){view[i]=HEAP32[value+4*i>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}function _emscripten_glUniform1uiv(location,count,value){count&&GLctx.uniform1uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2ui(location,v0,v1){GLctx.uniform2ui(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2uiv(location,count,value){count&&GLctx.uniform2uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*2)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3iv(webglGetUniformLocation(location),HEAP32,value>>2,count*3);return}if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3ui(location,v0,v1,v2){GLctx.uniform3ui(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3uiv(location,count,value){count&&GLctx.uniform3uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*3)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4iv(webglGetUniformLocation(location),HEAP32,value>>2,count*4);return}if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4ui(location,v0,v1,v2,v3){GLctx.uniform4ui(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4uiv(location,count,value){count&&GLctx.uniform4uiv(webglGetUniformLocation(location),HEAPU32,value>>2,count*4)}function _emscripten_glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix2x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix2x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*6)}function _emscripten_glUniformMatrix3x4fv(location,count,transpose,value){count&&GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4x2fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*8)}function _emscripten_glUniformMatrix4x3fv(location,count,transpose,value){count&&GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*12)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorARB(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorEXT(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribDivisorNV(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribI4i(x0,x1,x2,x3,x4){GLctx["vertexAttribI4i"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4iv(index,v){GLctx.vertexAttribI4i(index,HEAP32[v>>2],HEAP32[v+4>>2],HEAP32[v+8>>2],HEAP32[v+12>>2])}function _emscripten_glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttribI4uiv(index,v){GLctx.vertexAttribI4ui(index,HEAPU32[v>>2],HEAPU32[v+4>>2],HEAPU32[v+8>>2],HEAPU32[v+12>>2])}function _emscripten_glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_glWaitSync(sync,flags,timeoutLo,timeoutHi){GLctx.waitSync(GL.syncs[sync],flags,convertI32PairToI53(timeoutLo,timeoutHi))}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _emscripten_set_main_loop(func,fps,simulateInfiniteLoop){var browserIterationFunc=getWasmTableEntry(func);setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop)}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence<y.precedence})},removeDeferredCalls:function(targetFunction){for(var i=0;i<JSEvents.deferredCalls.length;++i){if(JSEvents.deferredCalls[i].targetFunction==targetFunction){JSEvents.deferredCalls.splice(i,1);--i}}},canPerformEventHandlerRequests:function(){return JSEvents.inEventHandler&&JSEvents.currentEventHandler.allowsDeferredCalls},runDeferredCalls:function(){if(!JSEvents.canPerformEventHandlerRequests()){return}for(var i=0;i<JSEvents.deferredCalls.length;++i){var call=JSEvents.deferredCalls[i];JSEvents.deferredCalls.splice(i,1);--i;call.targetFunction.apply(null,call.argsList)}},eventHandlers:[],removeAllHandlersOnTarget:function(target,eventTypeString){for(var i=0;i<JSEvents.eventHandlers.length;++i){if(JSEvents.eventHandlers[i].target==target&&(!eventTypeString||eventTypeString==JSEvents.eventHandlers[i].eventTypeString)){JSEvents._removeHandler(i--)}}},_removeHandler:function(i){var h=JSEvents.eventHandlers[i];h.target.removeEventListener(h.eventTypeString,h.eventListenerFunc,h.useCapture);JSEvents.eventHandlers.splice(i,1)},registerOrRemoveHandler:function(eventHandler){var jsEventHandler=function jsEventHandler(event){++JSEvents.inEventHandler;JSEvents.currentEventHandler=eventHandler;JSEvents.runDeferredCalls();eventHandler.handlerFunc(event);JSEvents.runDeferredCalls();--JSEvents.inEventHandler};if(eventHandler.callbackfunc){eventHandler.eventListenerFunc=jsEventHandler;eventHandler.target.addEventListener(eventHandler.eventTypeString,jsEventHandler,eventHandler.useCapture);JSEvents.eventHandlers.push(eventHandler);JSEvents.registerRemoveEventListeners()}else{for(var i=0;i<JSEvents.eventHandlers.length;++i){if(JSEvents.eventHandlers[i].target==eventHandler.target&&JSEvents.eventHandlers[i].eventTypeString==eventHandler.eventTypeString){JSEvents._removeHandler(i--)}}}},getNodeNameForTarget:function(target){if(!target)return"";if(target==window)return"#window";if(target==screen)return"#screen";return target&&target.nodeName?target.nodeName:""},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};var __emscripten_webgl_power_preferences=["default","low-power","high-performance"];function maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!="undefined"?document:0,typeof window!="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!="undefined"?document.querySelector(target):undefined);return domElement}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_webgl_do_create_context(target,attributes){var a=attributes>>2;var powerPreference=HEAP32[a+(24>>2)];var contextAttributes={"alpha":!!HEAP32[a+(0>>2)],"depth":!!HEAP32[a+(4>>2)],"stencil":!!HEAP32[a+(8>>2)],"antialias":!!HEAP32[a+(12>>2)],"premultipliedAlpha":!!HEAP32[a+(16>>2)],"preserveDrawingBuffer":!!HEAP32[a+(20>>2)],"powerPreference":__emscripten_webgl_power_preferences[powerPreference],"failIfMajorPerformanceCaveat":!!HEAP32[a+(28>>2)],majorVersion:HEAP32[a+(32>>2)],minorVersion:HEAP32[a+(36>>2)],enableExtensionsByDefault:HEAP32[a+(40>>2)],explicitSwapControl:HEAP32[a+(44>>2)],proxyContextToMainThread:HEAP32[a+(48>>2)],renderViaOffscreenBackBuffer:HEAP32[a+(52>>2)]};var canvas=findCanvasEventTarget(target);if(!canvas){return 0}if(contextAttributes.explicitSwapControl&&!contextAttributes.renderViaOffscreenBackBuffer){contextAttributes.renderViaOffscreenBackBuffer=true}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}function _emscripten_webgl_destroy_context(contextHandle){if(GL.currentContext==contextHandle)GL.currentContext=0;GL.deleteContext(contextHandle)}function _emscripten_webgl_init_context_attributes(attributes){var a=attributes>>2;for(var i=0;i<56>>2;++i){HEAP32[a+i]=0}HEAP32[a+(0>>2)]=HEAP32[a+(4>>2)]=HEAP32[a+(12>>2)]=HEAP32[a+(16>>2)]=HEAP32[a+(32>>2)]=HEAP32[a+(40>>2)]=1}function _emscripten_webgl_make_context_current(contextHandle){var success=GL.makeContextCurrent(contextHandle);return success?0:-5}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _fd_fdstat_get(fd,pbuf){try{var stream=SYSCALLS.getStreamFromFD(fd);var type=stream.tty?2:FS.isDir(stream.mode)?3:FS.isLink(stream.mode)?7:4;HEAP8[pbuf>>0]=type;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break}return ret}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function _getTempRet0(){return getTempRet0()}function _getaddrinfo(node,service,hint,out){var addr=0;var port=0;var flags=0;var family=0;var type=0;var proto=0;var ai;function allocaddrinfo(family,type,proto,canon,addr,port){var sa,salen,ai;var errno;salen=family===10?28:16;addr=family===10?inetNtop6(addr):inetNtop4(addr);sa=_malloc(salen);errno=writeSockaddr(sa,family,addr,port);assert(!errno);ai=_malloc(32);HEAP32[ai+4>>2]=family;HEAP32[ai+8>>2]=type;HEAP32[ai+12>>2]=proto;HEAP32[ai+24>>2]=canon;HEAPU32[ai+20>>2]=sa;if(family===10){HEAP32[ai+16>>2]=28}else{HEAP32[ai+16>>2]=16}HEAP32[ai+28>>2]=0;return ai}if(hint){flags=HEAP32[hint>>2];family=HEAP32[hint+4>>2];type=HEAP32[hint+8>>2];proto=HEAP32[hint+12>>2]}if(type&&!proto){proto=type===2?17:6}if(!type&&proto){type=proto===17?2:1}if(proto===0){proto=6}if(type===0){type=1}if(!node&&!service){return-2}if(flags&~(1|2|4|1024|8|16|32)){return-1}if(hint!==0&&HEAP32[hint>>2]&2&&!node){return-1}if(flags&32){return-2}if(type!==0&&type!==1&&type!==2){return-7}if(family!==0&&family!==2&&family!==10){return-6}if(service){service=UTF8ToString(service);port=parseInt(service,10);if(isNaN(port)){if(flags&1024){return-2}return-8}}if(!node){if(family===0){family=2}if((flags&1)===0){if(family===2){addr=_htonl(2130706433)}else{addr=[0,0,0,1]}}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}node=UTF8ToString(node);addr=inetPton4(node);if(addr!==null){if(family===0||family===2){family=2}else if(family===10&&flags&8){addr=[0,0,_htonl(65535),addr];family=10}else{return-2}}else{addr=inetPton6(node);if(addr!==null){if(family===0||family===10){family=10}else{return-2}}}if(addr!=null){ai=allocaddrinfo(family,type,proto,node,addr,port);HEAPU32[out>>2]=ai;return 0}if(flags&4){return-2}node=DNS.lookup_name(node);addr=inetPton4(node);if(family===0){family=2}else if(family===10){addr=[0,0,_htonl(65535),addr]}ai=allocaddrinfo(family,type,proto,null,addr,port);HEAPU32[out>>2]=ai;return 0}function _getnameinfo(sa,salen,node,nodelen,serv,servlen,flags){var info=readSockaddr(sa,salen);if(info.errno){return-6}var port=info.port;var addr=info.addr;var overflowed=false;if(node&&nodelen){var lookup;if(flags&1||!(lookup=DNS.lookup_addr(addr))){if(flags&8){return-2}}else{addr=lookup}var numBytesWrittenExclNull=stringToUTF8(addr,node,nodelen);if(numBytesWrittenExclNull+1>=nodelen){overflowed=true}}if(serv&&servlen){port=""+port;var numBytesWrittenExclNull=stringToUTF8(port,serv,servlen);if(numBytesWrittenExclNull+1>=servlen){overflowed=true}}if(overflowed){return-12}return 0}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBeginTransformFeedback(x0){GLctx["beginTransformFeedback"](x0)}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){if(target==35051){GLctx.currentPixelPackBufferBinding=buffer}else if(target==35052){GLctx.currentPixelUnpackBufferBinding=buffer}GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindBufferBase(target,index,buffer){GLctx["bindBufferBase"](target,index,GL.buffers[buffer])}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,framebuffer?GL.framebuffers[framebuffer]:GL.currentContext.defaultFbo)}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBindVertexArray(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _glBlendEquation(x0){GLctx["blendEquation"](x0)}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _glBlitFramebuffer(x0,x1,x2,x3,x4,x5,x6,x7,x8,x9){GLctx["blitFramebuffer"](x0,x1,x2,x3,x4,x5,x6,x7,x8,x9)}function _glBufferData(target,size,data,usage){if(GL.currentContext.version>=2){if(data&&size){GLctx.bufferData(target,HEAPU8,usage,data,size)}else{GLctx.bufferData(target,size,usage)}}else{GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}}function _glBufferSubData(target,offset,size,data){if(GL.currentContext.version>=2){size&&GLctx.bufferSubData(target,offset,HEAPU8,data,size);return}GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _glClear(x0){GLctx["clear"](x0)}function _glClearBufferfv(buffer,drawbuffer,value){GLctx["clearBufferfv"](buffer,drawbuffer,HEAPF32,value>>2)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,imageSize,data)}else{GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,HEAPU8,data,imageSize)}return}GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding||!imageSize){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,imageSize,data)}else{GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,HEAPU8,data,imageSize)}return}GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCompressedTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data){if(GLctx.currentPixelUnpackBufferBinding){GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,imageSize,data)}else{GLctx["compressedTexSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,HEAPU8,data,imageSize)}}function _glCopyBufferSubData(x0,x1,x2,x3,x4){GLctx["copyBufferSubData"](x0,x1,x2,x3,x4)}function _glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i<n;i++){var id=HEAP32[buffers+i*4>>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null;if(id==GLctx.currentPixelPackBufferBinding)GLctx.currentPixelPackBufferBinding=0;if(id==GLctx.currentPixelUnpackBufferBinding)GLctx.currentPixelUnpackBufferBinding=0}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i<n;++i){var id=HEAP32[framebuffers+i*4>>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i<n;i++){var id=HEAP32[renderbuffers+i*4>>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i<n;i++){var id=HEAP32[textures+i*4>>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDeleteVertexArrays(n,vaos){for(var i=0;i<n;i++){var id=HEAP32[vaos+i*4>>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawArraysInstanced(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}function _glDrawBuffers(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i<n;i++){bufArray[i]=HEAP32[bufs+i*4>>2]}GLctx["drawBuffers"](bufArray)}function _glDrawElementsInstanced(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glEndTransformFeedback(){GLctx["endTransformFeedback"]()}function _glFinish(){GLctx["finish"]()}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFramebufferTextureLayer(target,attachment,texture,level,layer){GLctx.framebufferTextureLayer(target,attachment,GL.textures[texture],level,layer)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGenVertexArrays(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function _glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _glGetProgramBinary(program,bufSize,length,binaryFormat,binary){GL.recordError(1282)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i<GLctx.getProgramParameter(program,35718);++i){program.maxUniformLength=Math.max(program.maxUniformLength,GLctx.getActiveUniform(program,i).name.length+1)}}HEAP32[p>>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i<GLctx.getProgramParameter(program,35721);++i){program.maxAttributeLength=Math.max(program.maxAttributeLength,GLctx.getActiveAttrib(program,i).name.length+1)}}HEAP32[p>>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i<GLctx.getProgramParameter(program,35382);++i){program.maxUniformBlockNameLength=Math.max(program.maxUniformBlockNameLength,GLctx.getActiveUniformBlockName(program,i).length+1)}}HEAP32[p>>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);if(GL.currentContext.version>=2)glVersion="OpenGL ES 3.0 ("+glVersion+")";else{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetStringi(name,index){if(GL.currentContext.version<2){GL.recordError(1282);return 0}var stringiCache=GL.stringiCache[name];if(stringiCache){if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index]}switch(name){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));exts=exts.map(function(e){return stringToNewUTF8(e)});stringiCache=GL.stringiCache[name]=exts;if(index<0||index>=stringiCache.length){GL.recordError(1281);return 0}return stringiCache[index];default:GL.recordError(1280);return 0}}function _glGetUniformBlockIndex(program,uniformBlockName){return GLctx["getUniformBlockIndex"](GL.programs[program],UTF8ToString(uniformBlockName))}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex<sizeAndId[0]){arrayIndex+=sizeAndId[1];if(uniformLocsById[arrayIndex]=uniformLocsById[arrayIndex]||GLctx.getUniformLocation(program,name)){return arrayIndex}}}else{GL.recordError(1281)}return-1}function _glInvalidateFramebuffer(target,numAttachments,attachments){var list=tempFixedLengthArray[numAttachments];for(var i=0;i<numAttachments;i++){list[i]=HEAP32[attachments+i*4>>2]}GLctx["invalidateFramebuffer"](target,list)}function _glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _glProgramBinary(program,binaryFormat,binary,length){GL.recordError(1280)}function _glProgramParameteri(program,pname,value){GL.recordError(1280)}function _glReadBuffer(x0){GLctx["readBuffer"](x0)}function _glReadPixels(x,y,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelPackBufferBinding){GLctx.readPixels(x,y,width,height,format,type,pixels)}else{var heap=heapObjectForWebGLType(type);GLctx.readPixels(x,y,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}return}var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _glRenderbufferStorageMultisample(x0,x1,x2,x3,x4){GLctx["renderbufferStorageMultisample"](x0,x1,x2,x3,x4)}function _glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,null)}return}GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _glTexImage3D(target,level,internalFormat,width,height,depth,border,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texImage3D"](target,level,internalFormat,width,height,depth,border,format,type,null)}}function _glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _glTexStorage2D(x0,x1,x2,x3,x4){GLctx["texStorage2D"](x0,x1,x2,x3,x4)}function _glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){if(GL.currentContext.version>=2){if(GLctx.currentPixelUnpackBufferBinding){GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,null)}return}var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _glTexSubImage3D(target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels){if(GLctx.currentPixelUnpackBufferBinding){GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,pixels)}else if(pixels){var heap=heapObjectForWebGLType(type);GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,heap,pixels>>heapAccessShiftForWebGLHeap(heap))}else{GLctx["texSubImage3D"](target,level,xoffset,yoffset,zoffset,width,height,depth,format,type,null)}}function _glTransformFeedbackVaryings(program,count,varyings,bufferMode){program=GL.programs[program];var vars=[];for(var i=0;i<count;i++)vars.push(UTF8ToString(HEAP32[varyings+i*4>>2]));GLctx["transformFeedbackVaryings"](program,vars,bufferMode)}function _glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform1iv(webglGetUniformLocation(location),HEAP32,value>>2,count);return}if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i<count;++i){view[i]=HEAP32[value+4*i>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform1ui(location,v0){GLctx.uniform1ui(webglGetUniformLocation(location),v0)}function _glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _glUniform2fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*2);return}if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _glUniform2iv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform2iv(webglGetUniformLocation(location),HEAP32,value>>2,count*2);return}if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _glUniform3fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform3fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*3);return}if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(GL.currentContext.version>=2){count&&GLctx.uniform4fv(webglGetUniformLocation(location),HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniformBlockBinding(program,uniformBlockIndex,uniformBlockBinding){program=GL.programs[program];GLctx["uniformBlockBinding"](program,uniformBlockIndex,uniformBlockBinding)}function _glUniformMatrix2fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*4);return}if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _glUniformMatrix3fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*9);return}if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _glUniformMatrix4fv(location,count,transpose,value){if(GL.currentContext.version>=2){count&&GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,HEAPF32,value>>2,count*16);return}if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribDivisor(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _glVertexAttribI4ui(x0,x1,x2,x3,x4){GLctx["vertexAttribI4ui"](x0,x1,x2,x3,x4)}function _glVertexAttribIPointer(index,size,type,stride,ptr){GLctx["vertexAttribIPointer"](index,size,type,stride,ptr)}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}var GodotRuntime={get_func:function(ptr){return wasmTable.get(ptr)},error:function(){err.apply(null,Array.from(arguments))},print:function(){out.apply(null,Array.from(arguments))},malloc:function(p_size){return _malloc(p_size)},free:function(p_ptr){_free(p_ptr)},getHeapValue:function(p_ptr,p_type){return getValue(p_ptr,p_type)},setHeapValue:function(p_ptr,p_value,p_type){setValue(p_ptr,p_value,p_type)},heapSub:function(p_heap,p_ptr,p_len){const bytes=p_heap.BYTES_PER_ELEMENT;return p_heap.subarray(p_ptr/bytes,p_ptr/bytes+p_len)},heapSlice:function(p_heap,p_ptr,p_len){const bytes=p_heap.BYTES_PER_ELEMENT;return p_heap.slice(p_ptr/bytes,p_ptr/bytes+p_len)},heapCopy:function(p_dst,p_src,p_ptr){const bytes=p_src.BYTES_PER_ELEMENT;return p_dst.set(p_src,p_ptr/bytes)},parseString:function(p_ptr){return UTF8ToString(p_ptr)},parseStringArray:function(p_ptr,p_size){const strings=[];const ptrs=GodotRuntime.heapSub(HEAP32,p_ptr,p_size);ptrs.forEach(function(ptr){strings.push(GodotRuntime.parseString(ptr))});return strings},strlen:function(p_str){return lengthBytesUTF8(p_str)},allocString:function(p_str){const length=GodotRuntime.strlen(p_str)+1;const c_str=GodotRuntime.malloc(length);stringToUTF8(p_str,c_str,length);return c_str},allocStringArray:function(p_strings){const size=p_strings.length;const c_ptr=GodotRuntime.malloc(size*4);for(let i=0;i<size;i++){HEAP32[(c_ptr>>2)+i]=GodotRuntime.allocString(p_strings[i])}return c_ptr},freeStringArray:function(p_ptr,p_len){for(let i=0;i<p_len;i++){GodotRuntime.free(HEAP32[(p_ptr>>2)+i])}GodotRuntime.free(p_ptr)},stringToHeap:function(p_str,p_ptr,p_len){return stringToUTF8Array(p_str,HEAP8,p_ptr,p_len)}};var GodotConfig={canvas:null,locale:"en",canvas_resize_policy:2,virtual_keyboard:false,persistent_drops:false,on_execute:null,on_exit:null,init_config:function(p_opts){GodotConfig.canvas_resize_policy=p_opts["canvasResizePolicy"];GodotConfig.canvas=p_opts["canvas"];GodotConfig.locale=p_opts["locale"]||GodotConfig.locale;GodotConfig.virtual_keyboard=p_opts["virtualKeyboard"];GodotConfig.persistent_drops=!!p_opts["persistentDrops"];GodotConfig.on_execute=p_opts["onExecute"];GodotConfig.on_exit=p_opts["onExit"];if(p_opts["focusCanvas"]){GodotConfig.canvas.focus()}},locate_file:function(file){return Module["locateFile"](file)},clear:function(){GodotConfig.canvas=null;GodotConfig.locale="en";GodotConfig.canvas_resize_policy=2;GodotConfig.virtual_keyboard=false;GodotConfig.persistent_drops=false;GodotConfig.on_execute=null;GodotConfig.on_exit=null}};var ERRNO_CODES={};var GodotFS={_idbfs:false,_syncing:false,_mount_points:[],is_persistent:function(){return GodotFS._idbfs?1:0},init:function(persistentPaths){GodotFS._idbfs=false;if(!Array.isArray(persistentPaths)){return Promise.reject(new Error("Persistent paths must be an array"))}if(!persistentPaths.length){return Promise.resolve()}GodotFS._mount_points=persistentPaths.slice();function createRecursive(dir){try{FS.stat(dir)}catch(e){if(e.errno!==ERRNO_CODES.ENOENT){throw e}FS.mkdirTree(dir)}}GodotFS._mount_points.forEach(function(path){createRecursive(path);FS.mount(IDBFS,{},path)});return new Promise(function(resolve,reject){FS.syncfs(true,function(err){if(err){GodotFS._mount_points=[];GodotFS._idbfs=false;GodotRuntime.print(`IndexedDB not available: ${err.message}`)}else{GodotFS._idbfs=true}resolve(err)})})},deinit:function(){GodotFS._mount_points.forEach(function(path){try{FS.unmount(path)}catch(e){GodotRuntime.print("Already unmounted",e)}if(GodotFS._idbfs&&IDBFS.dbs[path]){IDBFS.dbs[path].close();delete IDBFS.dbs[path]}});GodotFS._mount_points=[];GodotFS._idbfs=false;GodotFS._syncing=false},sync:function(){if(GodotFS._syncing){GodotRuntime.error("Already syncing!");return Promise.resolve()}GodotFS._syncing=true;return new Promise(function(resolve,reject){FS.syncfs(false,function(error){if(error){GodotRuntime.error(`Failed to save IDB file system: ${error.message}`)}GodotFS._syncing=false;resolve(error)})})},copy_to_fs:function(path,buffer){const idx=path.lastIndexOf("/");let dir="/";if(idx>0){dir=path.slice(0,idx)}try{FS.stat(dir)}catch(e){if(e.errno!==ERRNO_CODES.ENOENT){throw e}FS.mkdirTree(dir)}FS.writeFile(path,new Uint8Array(buffer))}};var GodotOS={request_quit:function(){},_async_cbs:[],_fs_sync_promise:null,atexit:function(p_promise_cb){GodotOS._async_cbs.push(p_promise_cb)},cleanup:function(exit_code){const cb=GodotConfig.on_exit;GodotFS.deinit();GodotConfig.clear();if(cb){cb(exit_code)}},finish_async:function(callback){GodotOS._fs_sync_promise.then(function(err){const promises=[];GodotOS._async_cbs.forEach(function(cb){promises.push(new Promise(cb))});return Promise.all(promises)}).then(function(){return GodotFS.sync()}).then(function(err){setTimeout(function(){callback()},0)})}};var GodotAudio={ctx:null,input:null,driver:null,interval:0,init:function(mix_rate,latency,onstatechange,onlatencyupdate){const opts={};if(mix_rate){opts["sampleRate"]=mix_rate}const ctx=new(window.AudioContext||window.webkitAudioContext)(opts);GodotAudio.ctx=ctx;ctx.onstatechange=function(){let state=0;switch(ctx.state){case"suspended":state=0;break;case"running":state=1;break;case"closed":state=2;break}onstatechange(state)};ctx.onstatechange();GodotAudio.interval=setInterval(function(){let computed_latency=0;if(ctx.baseLatency){computed_latency+=GodotAudio.ctx.baseLatency}if(ctx.outputLatency){computed_latency+=GodotAudio.ctx.outputLatency}onlatencyupdate(computed_latency)},1e3);GodotOS.atexit(GodotAudio.close_async);return ctx.destination.channelCount},create_input:function(callback){if(GodotAudio.input){return 0}function gotMediaInput(stream){try{GodotAudio.input=GodotAudio.ctx.createMediaStreamSource(stream);callback(GodotAudio.input)}catch(e){GodotRuntime.error("Failed creaating input.",e)}}if(navigator.mediaDevices&&navigator.mediaDevices.getUserMedia){navigator.mediaDevices.getUserMedia({"audio":true}).then(gotMediaInput,function(e){GodotRuntime.error("Error getting user media.",e)})}else{if(!navigator.getUserMedia){navigator.getUserMedia=navigator.webkitGetUserMedia||navigator.mozGetUserMedia}if(!navigator.getUserMedia){GodotRuntime.error("getUserMedia not available.");return 1}navigator.getUserMedia({"audio":true},gotMediaInput,function(e){GodotRuntime.print(e)})}return 0},close_async:function(resolve,reject){const ctx=GodotAudio.ctx;GodotAudio.ctx=null;if(!ctx){resolve();return}if(GodotAudio.interval){clearInterval(GodotAudio.interval);GodotAudio.interval=0}if(GodotAudio.input){GodotAudio.input.disconnect();GodotAudio.input=null}let closed=Promise.resolve();if(GodotAudio.driver){closed=GodotAudio.driver.close()}closed.then(function(){return ctx.close()}).then(function(){ctx.onstatechange=null;resolve()}).catch(function(e){ctx.onstatechange=null;GodotRuntime.error("Error closing AudioContext",e);resolve()})}};function _godot_audio_capture_start(){return GodotAudio.create_input(function(input){input.connect(GodotAudio.driver.get_node())})}function _godot_audio_capture_stop(){if(GodotAudio.input){const tracks=GodotAudio.input["mediaStream"]["getTracks"]();for(let i=0;i<tracks.length;i++){tracks[i]["stop"]()}GodotAudio.input.disconnect();GodotAudio.input=null}}function _godot_audio_has_script_processor(){return GodotAudio.ctx&&GodotAudio.ctx.createScriptProcessor?1:0}function _godot_audio_has_worklet(){return GodotAudio.ctx&&GodotAudio.ctx.audioWorklet?1:0}function _godot_audio_init(p_mix_rate,p_latency,p_state_change,p_latency_update){const statechange=GodotRuntime.get_func(p_state_change);const latencyupdate=GodotRuntime.get_func(p_latency_update);const mix_rate=GodotRuntime.getHeapValue(p_mix_rate,"i32");const channels=GodotAudio.init(mix_rate,p_latency,statechange,latencyupdate);GodotRuntime.setHeapValue(p_mix_rate,GodotAudio.ctx.sampleRate,"i32");return channels}function _godot_audio_is_available(){if(!(window.AudioContext||window.webkitAudioContext)){return 0}return 1}function _godot_audio_resume(){if(GodotAudio.ctx&&GodotAudio.ctx.state!=="running"){GodotAudio.ctx.resume()}}var GodotAudioScript={script:null,create:function(buffer_length,channel_count){GodotAudioScript.script=GodotAudio.ctx.createScriptProcessor(buffer_length,2,channel_count);GodotAudio.driver=GodotAudioScript;return GodotAudioScript.script.bufferSize},start:function(p_in_buf,p_in_size,p_out_buf,p_out_size,onprocess){GodotAudioScript.script.onaudioprocess=function(event){const inb=GodotRuntime.heapSub(HEAPF32,p_in_buf,p_in_size);const input=event.inputBuffer;if(GodotAudio.input){const inlen=input.getChannelData(0).length;for(let ch=0;ch<2;ch++){const data=input.getChannelData(ch);for(let s=0;s<inlen;s++){inb[s*2+ch]=data[s]}}}onprocess();const outb=GodotRuntime.heapSub(HEAPF32,p_out_buf,p_out_size);const output=event.outputBuffer;const channels=output.numberOfChannels;for(let ch=0;ch<channels;ch++){const data=output.getChannelData(ch);for(let sample=0;sample<data.length;sample++){data[sample]=outb[sample*channels+ch]}}};GodotAudioScript.script.connect(GodotAudio.ctx.destination)},get_node:function(){return GodotAudioScript.script},close:function(){return new Promise(function(resolve,reject){GodotAudioScript.script.disconnect();GodotAudioScript.script.onaudioprocess=null;GodotAudioScript.script=null;resolve()})}};function _godot_audio_script_create(buffer_length,channel_count){const buf_len=GodotRuntime.getHeapValue(buffer_length,"i32");try{const out_len=GodotAudioScript.create(buf_len,channel_count);GodotRuntime.setHeapValue(buffer_length,out_len,"i32")}catch(e){GodotRuntime.error("Error starting AudioDriverScriptProcessor",e);return 1}return 0}function _godot_audio_script_start(p_in_buf,p_in_size,p_out_buf,p_out_size,p_cb){const onprocess=GodotRuntime.get_func(p_cb);GodotAudioScript.start(p_in_buf,p_in_size,p_out_buf,p_out_size,onprocess)}var GodotAudioWorklet={promise:null,worklet:null,ring_buffer:null,create:function(channels){const path=GodotConfig.locate_file("godot.audio.worklet.js");GodotAudioWorklet.promise=GodotAudio.ctx.audioWorklet.addModule(path).then(function(){GodotAudioWorklet.worklet=new AudioWorkletNode(GodotAudio.ctx,"godot-processor",{"outputChannelCount":[channels]});return Promise.resolve()});GodotAudio.driver=GodotAudioWorklet},start:function(in_buf,out_buf,state){GodotAudioWorklet.promise.then(function(){const node=GodotAudioWorklet.worklet;node.connect(GodotAudio.ctx.destination);node.port.postMessage({"cmd":"start","data":[state,in_buf,out_buf]});node.port.onmessage=function(event){GodotRuntime.error(event.data)}})},start_no_threads:function(p_out_buf,p_out_size,out_callback,p_in_buf,p_in_size,in_callback){function RingBuffer(){let wpos=0;let rpos=0;let pending_samples=0;const wbuf=new Float32Array(p_out_size);function send(port){if(pending_samples===0){return}const buffer=GodotRuntime.heapSub(HEAPF32,p_out_buf,p_out_size);const size=buffer.length;const tot_sent=pending_samples;out_callback(wpos,pending_samples);if(wpos+pending_samples>=size){const high=size-wpos;wbuf.set(buffer.subarray(wpos,size));pending_samples-=high;wpos=0}if(pending_samples>0){wbuf.set(buffer.subarray(wpos,wpos+pending_samples),tot_sent-pending_samples)}port.postMessage({"cmd":"chunk","data":wbuf.subarray(0,tot_sent)});wpos+=pending_samples;pending_samples=0}this.receive=function(recv_buf){const buffer=GodotRuntime.heapSub(HEAPF32,p_in_buf,p_in_size);const from=rpos;let to_write=recv_buf.length;let high=0;if(rpos+to_write>=p_in_size){high=p_in_size-rpos;buffer.set(recv_buf.subarray(0,high),rpos);to_write-=high;rpos=0}if(to_write){buffer.set(recv_buf.subarray(high,to_write),rpos)}in_callback(from,recv_buf.length);rpos+=to_write};this.consumed=function(size,port){pending_samples+=size;send(port)}}GodotAudioWorklet.ring_buffer=new RingBuffer;GodotAudioWorklet.promise.then(function(){const node=GodotAudioWorklet.worklet;const buffer=GodotRuntime.heapSlice(HEAPF32,p_out_buf,p_out_size);node.connect(GodotAudio.ctx.destination);node.port.postMessage({"cmd":"start_nothreads","data":[buffer,p_in_size]});node.port.onmessage=function(event){if(!GodotAudioWorklet.worklet){return}if(event.data["cmd"]==="read"){const read=event.data["data"];GodotAudioWorklet.ring_buffer.consumed(read,GodotAudioWorklet.worklet.port)}else if(event.data["cmd"]==="input"){const buf=event.data["data"];if(buf.length>p_in_size){GodotRuntime.error("Input chunk is too big");return}GodotAudioWorklet.ring_buffer.receive(buf)}else{GodotRuntime.error(event.data)}}})},get_node:function(){return GodotAudioWorklet.worklet},close:function(){return new Promise(function(resolve,reject){if(GodotAudioWorklet.promise===null){return}GodotAudioWorklet.promise.then(function(){GodotAudioWorklet.worklet.port.postMessage({"cmd":"stop","data":null});GodotAudioWorklet.worklet.disconnect();GodotAudioWorklet.worklet=null;GodotAudioWorklet.promise=null;resolve()}).catch(function(err){})})}};function _godot_audio_worklet_create(channels){try{GodotAudioWorklet.create(channels)}catch(e){GodotRuntime.error("Error starting AudioDriverWorklet",e);return 1}return 0}function _godot_audio_worklet_start_no_threads(p_out_buf,p_out_size,p_out_callback,p_in_buf,p_in_size,p_in_callback){const out_callback=GodotRuntime.get_func(p_out_callback);const in_callback=GodotRuntime.get_func(p_in_callback);GodotAudioWorklet.start_no_threads(p_out_buf,p_out_size,out_callback,p_in_buf,p_in_size,in_callback)}function _godot_js_config_canvas_id_get(p_ptr,p_ptr_max){GodotRuntime.stringToHeap(`#${GodotConfig.canvas.id}`,p_ptr,p_ptr_max)}function _godot_js_config_locale_get(p_ptr,p_ptr_max){GodotRuntime.stringToHeap(GodotConfig.locale,p_ptr,p_ptr_max)}var GodotDisplayCursor={shape:"auto",visible:true,cursors:{},set_style:function(style){GodotConfig.canvas.style.cursor=style},set_shape:function(shape){GodotDisplayCursor.shape=shape;let css=shape;if(shape in GodotDisplayCursor.cursors){const c=GodotDisplayCursor.cursors[shape];css=`url("${c.url}") ${c.x} ${c.y}, auto`}if(GodotDisplayCursor.visible){GodotDisplayCursor.set_style(css)}},clear:function(){GodotDisplayCursor.set_style("");GodotDisplayCursor.shape="auto";GodotDisplayCursor.visible=true;Object.keys(GodotDisplayCursor.cursors).forEach(function(key){URL.revokeObjectURL(GodotDisplayCursor.cursors[key]);delete GodotDisplayCursor.cursors[key]})},lockPointer:function(){const canvas=GodotConfig.canvas;if(canvas.requestPointerLock){canvas.requestPointerLock()}},releasePointer:function(){if(document.exitPointerLock){document.exitPointerLock()}},isPointerLocked:function(){return document.pointerLockElement===GodotConfig.canvas}};var GodotEventListeners={handlers:[],has:function(target,event,method,capture){return GodotEventListeners.handlers.findIndex(function(e){return e.target===target&&e.event===event&&e.method===method&&e.capture===capture})!==-1},add:function(target,event,method,capture){if(GodotEventListeners.has(target,event,method,capture)){return}function Handler(p_target,p_event,p_method,p_capture){this.target=p_target;this.event=p_event;this.method=p_method;this.capture=p_capture}GodotEventListeners.handlers.push(new Handler(target,event,method,capture));target.addEventListener(event,method,capture)},clear:function(){GodotEventListeners.handlers.forEach(function(h){h.target.removeEventListener(h.event,h.method,h.capture)});GodotEventListeners.handlers.length=0}};function _emscripten_webgl_do_get_current_context(){return GL.currentContext?GL.currentContext.handle:0}function _emscripten_webgl_get_current_context(){return _emscripten_webgl_do_get_current_context()}var GodotDisplayScreen={desired_size:[0,0],hidpi:true,getPixelRatio:function(){return GodotDisplayScreen.hidpi?window.devicePixelRatio||1:1},isFullscreen:function(){const elem=document.fullscreenElement||document.mozFullscreenElement||document.webkitFullscreenElement||document.msFullscreenElement;if(elem){return elem===GodotConfig.canvas}return document.fullscreen||document.mozFullScreen||document.webkitIsFullscreen},hasFullscreen:function(){return document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled},requestFullscreen:function(){if(!GodotDisplayScreen.hasFullscreen()){return 1}const canvas=GodotConfig.canvas;try{const promise=(canvas.requestFullscreen||canvas.msRequestFullscreen||canvas.mozRequestFullScreen||canvas.mozRequestFullscreen||canvas.webkitRequestFullscreen).call(canvas);if(promise){promise.catch(function(){})}}catch(e){return 1}return 0},exitFullscreen:function(){if(!GodotDisplayScreen.isFullscreen()){return 0}try{const promise=document.exitFullscreen();if(promise){promise.catch(function(){})}}catch(e){return 1}return 0},_updateGL:function(){const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle);if(gl){GL.resizeOffscreenFramebuffer(gl)}},updateSize:function(){const isFullscreen=GodotDisplayScreen.isFullscreen();const wantsFullWindow=GodotConfig.canvas_resize_policy===2;const noResize=GodotConfig.canvas_resize_policy===0;const wwidth=GodotDisplayScreen.desired_size[0];const wheight=GodotDisplayScreen.desired_size[1];const canvas=GodotConfig.canvas;let width=wwidth;let height=wheight;if(noResize){if(canvas.width!==width||canvas.height!==height){GodotDisplayScreen.desired_size=[canvas.width,canvas.height];GodotDisplayScreen._updateGL();return 1}return 0}const scale=GodotDisplayScreen.getPixelRatio();if(isFullscreen||wantsFullWindow){width=window.innerWidth*scale;height=window.innerHeight*scale}const csw=`${width/scale}px`;const csh=`${height/scale}px`;if(canvas.style.width!==csw||canvas.style.height!==csh||canvas.width!==width||canvas.height!==height){canvas.width=width;canvas.height=height;canvas.style.width=csw;canvas.style.height=csh;GodotDisplayScreen._updateGL();return 1}return 0}};var GodotDisplayVK={textinput:null,textarea:null,available:function(){return GodotConfig.virtual_keyboard&&"ontouchstart"in window},init:function(input_cb){function create(what){const elem=document.createElement(what);elem.style.display="none";elem.style.position="absolute";elem.style.zIndex="-1";elem.style.background="transparent";elem.style.padding="0px";elem.style.margin="0px";elem.style.overflow="hidden";elem.style.width="0px";elem.style.height="0px";elem.style.border="0px";elem.style.outline="none";elem.readonly=true;elem.disabled=true;GodotEventListeners.add(elem,"input",function(evt){const c_str=GodotRuntime.allocString(elem.value);input_cb(c_str,elem.selectionEnd);GodotRuntime.free(c_str)},false);GodotEventListeners.add(elem,"blur",function(evt){elem.style.display="none";elem.readonly=true;elem.disabled=true},false);GodotConfig.canvas.insertAdjacentElement("beforebegin",elem);return elem}GodotDisplayVK.textinput=create("input");GodotDisplayVK.textarea=create("textarea");GodotDisplayVK.updateSize()},show:function(text,multiline,start,end){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}if(GodotDisplayVK.textinput.style.display!==""||GodotDisplayVK.textarea.style.display!==""){GodotDisplayVK.hide()}GodotDisplayVK.updateSize();const elem=multiline?GodotDisplayVK.textarea:GodotDisplayVK.textinput;elem.readonly=false;elem.disabled=false;elem.value=text;elem.style.display="block";elem.focus();elem.setSelectionRange(start,end)},hide:function(){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}[GodotDisplayVK.textinput,GodotDisplayVK.textarea].forEach(function(elem){elem.blur();elem.style.display="none";elem.value=""})},updateSize:function(){if(!GodotDisplayVK.textinput||!GodotDisplayVK.textarea){return}const rect=GodotConfig.canvas.getBoundingClientRect();function update(elem){elem.style.left=`${rect.left}px`;elem.style.top=`${rect.top}px`;elem.style.width=`${rect.width}px`;elem.style.height=`${rect.height}px`}update(GodotDisplayVK.textinput);update(GodotDisplayVK.textarea)},clear:function(){if(GodotDisplayVK.textinput){GodotDisplayVK.textinput.remove();GodotDisplayVK.textinput=null}if(GodotDisplayVK.textarea){GodotDisplayVK.textarea.remove();GodotDisplayVK.textarea=null}}};var GodotDisplay={window_icon:"",findDPI:function(){function testDPI(dpi){return window.matchMedia(`(max-resolution: ${dpi}dpi)`).matches}function bisect(low,high,func){const mid=parseInt((high-low)/2+low,10);if(high-low<=1){return func(high)?high:low}if(func(mid)){return bisect(low,mid,func)}return bisect(mid,high,func)}try{const dpi=bisect(0,800,testDPI);return dpi>=96?dpi:96}catch(e){return 96}}};function _godot_js_display_alert(p_text){window.alert(GodotRuntime.parseString(p_text))}function _godot_js_display_canvas_focus(){GodotConfig.canvas.focus()}function _godot_js_display_canvas_is_focused(){return document.activeElement===GodotConfig.canvas}function _godot_js_display_clipboard_get(callback){const func=GodotRuntime.get_func(callback);try{navigator.clipboard.readText().then(function(result){const ptr=GodotRuntime.allocString(result);func(ptr);GodotRuntime.free(ptr)}).catch(function(e){})}catch(e){}}function _godot_js_display_clipboard_set(p_text){const text=GodotRuntime.parseString(p_text);if(!navigator.clipboard||!navigator.clipboard.writeText){return 1}navigator.clipboard.writeText(text).catch(function(e){GodotRuntime.error("Setting OS clipboard is only possible from an input callback for the HTML5 plafrom. Exception:",e)});return 0}function _godot_js_display_cursor_is_hidden(){return!GodotDisplayCursor.visible}function _godot_js_display_cursor_is_locked(){return GodotDisplayCursor.isPointerLocked()?1:0}function _godot_js_display_cursor_lock_set(p_lock){if(p_lock){GodotDisplayCursor.lockPointer()}else{GodotDisplayCursor.releasePointer()}}function _godot_js_display_cursor_set_custom_shape(p_shape,p_ptr,p_len,p_hotspot_x,p_hotspot_y){const shape=GodotRuntime.parseString(p_shape);const old_shape=GodotDisplayCursor.cursors[shape];if(p_len>0){const png=new Blob([GodotRuntime.heapSlice(HEAPU8,p_ptr,p_len)],{type:"image/png"});const url=URL.createObjectURL(png);GodotDisplayCursor.cursors[shape]={url:url,x:p_hotspot_x,y:p_hotspot_y}}else{delete GodotDisplayCursor.cursors[shape]}if(shape===GodotDisplayCursor.shape){GodotDisplayCursor.set_shape(GodotDisplayCursor.shape)}if(old_shape){URL.revokeObjectURL(old_shape.url)}}function _godot_js_display_cursor_set_shape(p_string){GodotDisplayCursor.set_shape(GodotRuntime.parseString(p_string))}function _godot_js_display_cursor_set_visible(p_visible){const visible=p_visible!==0;if(visible===GodotDisplayCursor.visible){return}GodotDisplayCursor.visible=visible;if(visible){GodotDisplayCursor.set_shape(GodotDisplayCursor.shape)}else{GodotDisplayCursor.set_style("none")}}function _godot_js_display_desired_size_set(width,height){GodotDisplayScreen.desired_size=[width,height];GodotDisplayScreen.updateSize()}function _godot_js_display_fullscreen_cb(callback){const canvas=GodotConfig.canvas;const func=GodotRuntime.get_func(callback);function change_cb(evt){if(evt.target===canvas){func(GodotDisplayScreen.isFullscreen())}}GodotEventListeners.add(document,"fullscreenchange",change_cb,false);GodotEventListeners.add(document,"mozfullscreenchange",change_cb,false);GodotEventListeners.add(document,"webkitfullscreenchange",change_cb,false)}function _godot_js_display_fullscreen_exit(){return GodotDisplayScreen.exitFullscreen()}function _godot_js_display_fullscreen_request(){return GodotDisplayScreen.requestFullscreen()}function _godot_js_display_glGetBufferSubData(target,offset,size,data){const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle);if(gl){gl.GLctx["getBufferSubData"](target,offset,HEAPU8,data,size)}}function _godot_js_display_has_webgl(p_version){if(p_version!==1&&p_version!==2){return false}try{return!!document.createElement("canvas").getContext(p_version===2?"webgl2":"webgl")}catch(e){}return false}function _godot_js_display_is_swap_ok_cancel(){const win=["Windows","Win64","Win32","WinCE"];const plat=navigator.platform||"";if(win.indexOf(plat)!==-1){return 1}return 0}function _godot_js_display_notification_cb(callback,p_enter,p_exit,p_in,p_out){const canvas=GodotConfig.canvas;const func=GodotRuntime.get_func(callback);const notif=[p_enter,p_exit,p_in,p_out];["mouseover","mouseleave","focus","blur"].forEach(function(evt_name,idx){GodotEventListeners.add(canvas,evt_name,function(){func(notif[idx])},true)})}function _godot_js_display_pixel_ratio_get(){return GodotDisplayScreen.getPixelRatio()}function _godot_js_display_screen_dpi_get(){return GodotDisplay.findDPI()}function _godot_js_display_screen_size_get(width,height){const scale=GodotDisplayScreen.getPixelRatio();GodotRuntime.setHeapValue(width,window.screen.width*scale,"i32");GodotRuntime.setHeapValue(height,window.screen.height*scale,"i32")}function _godot_js_display_setup_canvas(p_width,p_height,p_fullscreen,p_hidpi){const canvas=GodotConfig.canvas;GodotEventListeners.add(canvas,"contextmenu",function(ev){ev.preventDefault()},false);GodotEventListeners.add(canvas,"webglcontextlost",function(ev){alert("WebGL context lost, please reload the page");ev.preventDefault()},false);GodotDisplayScreen.hidpi=!!p_hidpi;switch(GodotConfig.canvas_resize_policy){case 0:GodotDisplayScreen.desired_size=[canvas.width,canvas.height];break;case 1:GodotDisplayScreen.desired_size=[p_width,p_height];break;default:canvas.style.position="absolute";canvas.style.top=0;canvas.style.left=0;break}GodotDisplayScreen.updateSize();if(p_fullscreen){GodotDisplayScreen.requestFullscreen()}}function _godot_js_display_size_update(){const updated=GodotDisplayScreen.updateSize();if(updated){GodotDisplayVK.updateSize()}return updated}function _godot_js_display_touchscreen_is_available(){return"ontouchstart"in window}function _godot_js_display_vk_available(){return GodotDisplayVK.available()}function _godot_js_display_vk_cb(p_input_cb){const input_cb=GodotRuntime.get_func(p_input_cb);if(GodotDisplayVK.available()){GodotDisplayVK.init(input_cb)}}function _godot_js_display_vk_hide(){GodotDisplayVK.hide()}function _godot_js_display_vk_show(p_text,p_multiline,p_start,p_end){const text=GodotRuntime.parseString(p_text);const start=p_start>0?p_start:0;const end=p_end>0?p_end:start;GodotDisplayVK.show(text,p_multiline,start,end)}function _godot_js_display_window_blur_cb(callback){const func=GodotRuntime.get_func(callback);GodotEventListeners.add(window,"blur",function(){func()},false)}function _godot_js_display_window_icon_set(p_ptr,p_len){let link=document.getElementById("-gd-engine-icon");if(link===null){link=document.createElement("link");link.rel="icon";link.id="-gd-engine-icon";document.head.appendChild(link)}const old_icon=GodotDisplay.window_icon;const png=new Blob([GodotRuntime.heapSlice(HEAPU8,p_ptr,p_len)],{type:"image/png"});GodotDisplay.window_icon=URL.createObjectURL(png);link.href=GodotDisplay.window_icon;if(old_icon){URL.revokeObjectURL(old_icon)}}function _godot_js_display_window_size_get(p_width,p_height){GodotRuntime.setHeapValue(p_width,GodotConfig.canvas.width,"i32");GodotRuntime.setHeapValue(p_height,GodotConfig.canvas.height,"i32")}function _godot_js_display_window_title_set(p_data){document.title=GodotRuntime.parseString(p_data)}function _godot_js_eval(p_js,p_use_global_ctx,p_union_ptr,p_byte_arr,p_byte_arr_write,p_callback){const js_code=GodotRuntime.parseString(p_js);let eval_ret=null;try{if(p_use_global_ctx){const global_eval=eval;eval_ret=global_eval(js_code)}else{eval_ret=eval(js_code)}}catch(e){GodotRuntime.error(e)}switch(typeof eval_ret){case"boolean":GodotRuntime.setHeapValue(p_union_ptr,eval_ret,"i32");return 1;case"number":GodotRuntime.setHeapValue(p_union_ptr,eval_ret,"double");return 3;case"string":GodotRuntime.setHeapValue(p_union_ptr,GodotRuntime.allocString(eval_ret),"*");return 4;case"object":if(eval_ret===null){break}if(ArrayBuffer.isView(eval_ret)&&!(eval_ret instanceof Uint8Array)){eval_ret=new Uint8Array(eval_ret.buffer)}else if(eval_ret instanceof ArrayBuffer){eval_ret=new Uint8Array(eval_ret)}if(eval_ret instanceof Uint8Array){const func=GodotRuntime.get_func(p_callback);const bytes_ptr=func(p_byte_arr,p_byte_arr_write,eval_ret.length);HEAPU8.set(eval_ret,bytes_ptr);return 20}break}return 0}var IDHandler={_last_id:0,_references:{},get:function(p_id){return IDHandler._references[p_id]},add:function(p_data){const id=++IDHandler._last_id;IDHandler._references[id]=p_data;return id},remove:function(p_id){delete IDHandler._references[p_id]}};var GodotFetch={onread:function(id,result){const obj=IDHandler.get(id);if(!obj){return}if(result.value){obj.chunks.push(result.value)}obj.reading=false;obj.done=result.done},onresponse:function(id,response){const obj=IDHandler.get(id);if(!obj){return}let chunked=false;response.headers.forEach(function(value,header){const v=value.toLowerCase().trim();const h=header.toLowerCase().trim();if(h==="transfer-encoding"&&v==="chunked"){chunked=true}});obj.status=response.status;obj.response=response;obj.reader=response.body.getReader();obj.chunked=chunked},onerror:function(id,err){GodotRuntime.error(err);const obj=IDHandler.get(id);if(!obj){return}obj.error=err},create:function(method,url,headers,body){const obj={request:null,response:null,reader:null,error:null,done:false,reading:false,status:0,chunks:[],bodySize:-1};const id=IDHandler.add(obj);const init={method:method,headers:headers,body:body};obj.request=fetch(url,init);obj.request.then(GodotFetch.onresponse.bind(null,id)).catch(GodotFetch.onerror.bind(null,id));return id},free:function(id){const obj=IDHandler.get(id);if(!obj){return}IDHandler.remove(id);if(!obj.request){return}obj.request.then(function(response){response.abort()}).catch(function(e){})},read:function(id){const obj=IDHandler.get(id);if(!obj){return}if(obj.reader&&!obj.reading){if(obj.done){obj.reader=null;return}obj.reading=true;obj.reader.read().then(GodotFetch.onread.bind(null,id)).catch(GodotFetch.onerror.bind(null,id))}}};function _godot_js_fetch_body_length_get(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return-1}return obj.bodySize}function _godot_js_fetch_create(p_method,p_url,p_headers,p_headers_size,p_body,p_body_size){const method=GodotRuntime.parseString(p_method);const url=GodotRuntime.parseString(p_url);const headers=GodotRuntime.parseStringArray(p_headers,p_headers_size);const body=p_body_size?GodotRuntime.heapSlice(HEAP8,p_body,p_body_size):null;return GodotFetch.create(method,url,headers.map(function(hv){const idx=hv.indexOf(":");if(idx<=0){return[]}return[hv.slice(0,idx).trim(),hv.slice(idx+1).trim()]}).filter(function(v){return v.length===2}),body)}function _godot_js_fetch_free(id){GodotFetch.free(id)}function _godot_js_fetch_http_status_get(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 0}return obj.status}function _godot_js_fetch_is_chunked(p_id){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return-1}return obj.chunked?1:0}function _godot_js_fetch_read_chunk(p_id,p_buf,p_buf_size){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 0}let to_read=p_buf_size;const chunks=obj.chunks;while(to_read&&chunks.length){const chunk=obj.chunks[0];if(chunk.length>to_read){GodotRuntime.heapCopy(HEAP8,chunk.slice(0,to_read),p_buf);chunks[0]=chunk.slice(to_read);to_read=0}else{GodotRuntime.heapCopy(HEAP8,chunk,p_buf);to_read-=chunk.length;chunks.pop()}}if(!chunks.length){GodotFetch.read(p_id)}return p_buf_size-to_read}function _godot_js_fetch_read_headers(p_id,p_parse_cb,p_ref){const obj=IDHandler.get(p_id);if(!obj||!obj.response){return 1}const cb=GodotRuntime.get_func(p_parse_cb);const arr=[];obj.response.headers.forEach(function(v,h){arr.push(`${h}:${v}`)});const c_ptr=GodotRuntime.allocStringArray(arr);cb(arr.length,c_ptr,p_ref);GodotRuntime.freeStringArray(c_ptr,arr.length);return 0}function _godot_js_fetch_state_get(p_id){const obj=IDHandler.get(p_id);if(!obj){return-1}if(obj.error){return-1}if(!obj.response){return 0}if(obj.reader){return 1}if(obj.done){return 2}return-1}var GodotInputGamepads={samples:[],get_pads:function(){try{const pads=navigator.getGamepads();if(pads){return pads}return[]}catch(e){return[]}},get_samples:function(){return GodotInputGamepads.samples},get_sample:function(index){const samples=GodotInputGamepads.samples;return index<samples.length?samples[index]:null},sample:function(){const pads=GodotInputGamepads.get_pads();const samples=[];for(let i=0;i<pads.length;i++){const pad=pads[i];if(!pad){samples.push(null);continue}const s={standard:pad.mapping==="standard",buttons:[],axes:[],connected:pad.connected};for(let b=0;b<pad.buttons.length;b++){s.buttons.push(pad.buttons[b].value)}for(let a=0;a<pad.axes.length;a++){s.axes.push(pad.axes[a])}samples.push(s)}GodotInputGamepads.samples=samples},init:function(onchange){GodotInputGamepads.samples=[];function add(pad){const guid=GodotInputGamepads.get_guid(pad);const c_id=GodotRuntime.allocString(pad.id);const c_guid=GodotRuntime.allocString(guid);onchange(pad.index,1,c_id,c_guid);GodotRuntime.free(c_id);GodotRuntime.free(c_guid)}const pads=GodotInputGamepads.get_pads();for(let i=0;i<pads.length;i++){if(pads[i]){add(pads[i])}}GodotEventListeners.add(window,"gamepadconnected",function(evt){if(evt.gamepad){add(evt.gamepad)}},false);GodotEventListeners.add(window,"gamepaddisconnected",function(evt){if(evt.gamepad){onchange(evt.gamepad.index,0)}},false)},get_guid:function(pad){if(pad.mapping){return pad.mapping}const ua=navigator.userAgent;let os="Unknown";if(ua.indexOf("Android")>=0){os="Android"}else if(ua.indexOf("Linux")>=0){os="Linux"}else if(ua.indexOf("iPhone")>=0){os="iOS"}else if(ua.indexOf("Macintosh")>=0){os="MacOSX"}else if(ua.indexOf("Windows")>=0){os="Windows"}const id=pad.id;const exp1=/vendor: ([0-9a-f]{4}) product: ([0-9a-f]{4})/i;const exp2=/^([0-9a-f]+)-([0-9a-f]+)-/i;let vendor="";let product="";if(exp1.test(id)){const match=exp1.exec(id);vendor=match[1].padStart(4,"0");product=match[2].padStart(4,"0")}else if(exp2.test(id)){const match=exp2.exec(id);vendor=match[1].padStart(4,"0");product=match[2].padStart(4,"0")}if(!vendor||!product){return`${os}Unknown`}return os+vendor+product}};var GodotInputDragDrop={promises:[],pending_files:[],add_entry:function(entry){if(entry.isDirectory){GodotInputDragDrop.add_dir(entry)}else if(entry.isFile){GodotInputDragDrop.add_file(entry)}else{GodotRuntime.error("Unrecognized entry...",entry)}},add_dir:function(entry){GodotInputDragDrop.promises.push(new Promise(function(resolve,reject){const reader=entry.createReader();reader.readEntries(function(entries){for(let i=0;i<entries.length;i++){GodotInputDragDrop.add_entry(entries[i])}resolve()})}))},add_file:function(entry){GodotInputDragDrop.promises.push(new Promise(function(resolve,reject){entry.file(function(file){const reader=new FileReader;reader.onload=function(){const f={"path":file.relativePath||file.webkitRelativePath,"name":file.name,"type":file.type,"size":file.size,"data":reader.result};if(!f["path"]){f["path"]=f["name"]}GodotInputDragDrop.pending_files.push(f);resolve()};reader.onerror=function(){GodotRuntime.print("Error reading file");reject()};reader.readAsArrayBuffer(file)},function(err){GodotRuntime.print("Error!");reject()})}))},process:function(resolve,reject){if(GodotInputDragDrop.promises.length===0){resolve();return}GodotInputDragDrop.promises.pop().then(function(){setTimeout(function(){GodotInputDragDrop.process(resolve,reject)},0)})},_process_event:function(ev,callback){ev.preventDefault();if(ev.dataTransfer.items){for(let i=0;i<ev.dataTransfer.items.length;i++){const item=ev.dataTransfer.items[i];let entry=null;if("getAsEntry"in item){entry=item.getAsEntry()}else if("webkitGetAsEntry"in item){entry=item.webkitGetAsEntry()}if(entry){GodotInputDragDrop.add_entry(entry)}}}else{GodotRuntime.error("File upload not supported")}new Promise(GodotInputDragDrop.process).then(function(){const DROP=`/tmp/drop-${parseInt(Math.random()*(1<<30),10)}/`;const drops=[];const files=[];FS.mkdir(DROP.slice(0,-1));GodotInputDragDrop.pending_files.forEach(elem=>{const path=elem["path"];GodotFS.copy_to_fs(DROP+path,elem["data"]);let idx=path.indexOf("/");if(idx===-1){drops.push(DROP+path)}else{const sub=path.substr(0,idx);idx=sub.indexOf("/");if(idx<0&&drops.indexOf(DROP+sub)===-1){drops.push(DROP+sub)}}files.push(DROP+path)});GodotInputDragDrop.promises=[];GodotInputDragDrop.pending_files=[];callback(drops);if(GodotConfig.persistent_drops){GodotOS.atexit(function(resolve,reject){GodotInputDragDrop.remove_drop(files,DROP);resolve()})}else{GodotInputDragDrop.remove_drop(files,DROP)}})},remove_drop:function(files,drop_path){const dirs=[drop_path.substr(0,drop_path.length-1)];files.forEach(function(file){FS.unlink(file);let dir=file.replace(drop_path,"");let idx=dir.lastIndexOf("/");while(idx>0){dir=dir.substr(0,idx);if(dirs.indexOf(drop_path+dir)===-1){dirs.push(drop_path+dir)}idx=dir.lastIndexOf("/")}});dirs.sort(function(a,b){const al=(a.match(/\//g)||[]).length;const bl=(b.match(/\//g)||[]).length;if(al>bl){return-1}else if(al<bl){return 1}return 0}).forEach(function(dir){FS.rmdir(dir)})},handler:function(callback){return function(ev){GodotInputDragDrop._process_event(ev,callback)}}};var GodotInput={getModifiers:function(evt){return evt.shiftKey+0+(evt.altKey+0<<1)+(evt.ctrlKey+0<<2)+(evt.metaKey+0<<3)},computePosition:function(evt,rect){const canvas=GodotConfig.canvas;const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const x=(evt.clientX-rect.x)*rw;const y=(evt.clientY-rect.y)*rh;return[x,y]}};function _godot_js_input_drop_files_cb(callback){const func=GodotRuntime.get_func(callback);const dropFiles=function(files){const args=files||[];if(!args.length){return}const argc=args.length;const argv=GodotRuntime.allocStringArray(args);func(argv,argc);GodotRuntime.freeStringArray(argv,argc)};const canvas=GodotConfig.canvas;GodotEventListeners.add(canvas,"dragover",function(ev){ev.preventDefault()},false);GodotEventListeners.add(canvas,"drop",GodotInputDragDrop.handler(dropFiles))}function _godot_js_input_gamepad_cb(change_cb){const onchange=GodotRuntime.get_func(change_cb);GodotInputGamepads.init(onchange)}function _godot_js_input_gamepad_sample(){GodotInputGamepads.sample();return 0}function _godot_js_input_gamepad_sample_count(){return GodotInputGamepads.get_samples().length}function _godot_js_input_gamepad_sample_get(p_index,r_btns,r_btns_num,r_axes,r_axes_num,r_standard){const sample=GodotInputGamepads.get_sample(p_index);if(!sample||!sample.connected){return 1}const btns=sample.buttons;const btns_len=btns.length<16?btns.length:16;for(let i=0;i<btns_len;i++){GodotRuntime.setHeapValue(r_btns+(i<<2),btns[i],"float")}GodotRuntime.setHeapValue(r_btns_num,btns_len,"i32");const axes=sample.axes;const axes_len=axes.length<10?axes.length:10;for(let i=0;i<axes_len;i++){GodotRuntime.setHeapValue(r_axes+(i<<2),axes[i],"float")}GodotRuntime.setHeapValue(r_axes_num,axes_len,"i32");const is_standard=sample.standard?1:0;GodotRuntime.setHeapValue(r_standard,is_standard,"i32");return 0}function _godot_js_input_key_cb(callback,code,key){const func=GodotRuntime.get_func(callback);function key_cb(pressed,evt){const modifiers=GodotInput.getModifiers(evt);GodotRuntime.stringToHeap(evt.code,code,32);GodotRuntime.stringToHeap(evt.key,key,32);func(pressed,evt.repeat,modifiers);evt.preventDefault()}GodotEventListeners.add(GodotConfig.canvas,"keydown",key_cb.bind(null,1),false);GodotEventListeners.add(GodotConfig.canvas,"keyup",key_cb.bind(null,0),false)}function _godot_js_input_mouse_button_cb(callback){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function button_cb(p_pressed,evt){const rect=canvas.getBoundingClientRect();const pos=GodotInput.computePosition(evt,rect);const modifiers=GodotInput.getModifiers(evt);if(p_pressed){GodotConfig.canvas.focus()}if(func(p_pressed,evt.button,pos[0],pos[1],modifiers)){evt.preventDefault()}}GodotEventListeners.add(canvas,"mousedown",button_cb.bind(null,1),false);GodotEventListeners.add(window,"mouseup",button_cb.bind(null,0),false)}function _godot_js_input_mouse_move_cb(callback){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function move_cb(evt){const rect=canvas.getBoundingClientRect();const pos=GodotInput.computePosition(evt,rect);const rw=canvas.width/rect.width;const rh=canvas.height/rect.height;const rel_pos_x=evt.movementX*rw;const rel_pos_y=evt.movementY*rh;const modifiers=GodotInput.getModifiers(evt);func(pos[0],pos[1],rel_pos_x,rel_pos_y,modifiers)}GodotEventListeners.add(window,"mousemove",move_cb,false)}function _godot_js_input_mouse_wheel_cb(callback){const func=GodotRuntime.get_func(callback);function wheel_cb(evt){if(func(evt["deltaX"]||0,evt["deltaY"]||0)){evt.preventDefault()}}GodotEventListeners.add(GodotConfig.canvas,"wheel",wheel_cb,false)}function _godot_js_input_paste_cb(callback){const func=GodotRuntime.get_func(callback);GodotEventListeners.add(window,"paste",function(evt){const text=evt.clipboardData.getData("text");const ptr=GodotRuntime.allocString(text);func(ptr);GodotRuntime.free(ptr)},false)}function _godot_js_input_touch_cb(callback,ids,coords){const func=GodotRuntime.get_func(callback);const canvas=GodotConfig.canvas;function touch_cb(type,evt){if(type===0){GodotConfig.canvas.focus()}const rect=canvas.getBoundingClientRect();const touches=evt.changedTouches;for(let i=0;i<touches.length;i++){const touch=touches[i];const pos=GodotInput.computePosition(touch,rect);GodotRuntime.setHeapValue(coords+i*2*8,pos[0],"double");GodotRuntime.setHeapValue(coords+(i*2+1)*8,pos[1],"double");GodotRuntime.setHeapValue(ids+i*4,touch.identifier,"i32")}func(type,touches.length);if(evt.cancelable){evt.preventDefault()}}GodotEventListeners.add(canvas,"touchstart",touch_cb.bind(null,0),false);GodotEventListeners.add(canvas,"touchend",touch_cb.bind(null,1),false);GodotEventListeners.add(canvas,"touchcancel",touch_cb.bind(null,1),false);GodotEventListeners.add(canvas,"touchmove",touch_cb.bind(null,2),false)}function _godot_js_input_vibrate_handheld(p_duration_ms){if(typeof navigator.vibrate!=="function"){GodotRuntime.print("This browser does not support vibration.")}else{navigator.vibrate(p_duration_ms)}}function _godot_js_os_download_buffer(p_ptr,p_size,p_name,p_mime){const buf=GodotRuntime.heapSlice(HEAP8,p_ptr,p_size);const name=GodotRuntime.parseString(p_name);const mime=GodotRuntime.parseString(p_mime);const blob=new Blob([buf],{type:mime});const url=window.URL.createObjectURL(blob);const a=document.createElement("a");a.href=url;a.download=name;a.style.display="none";document.body.appendChild(a);a.click();a.remove();window.URL.revokeObjectURL(url)}function _godot_js_os_execute(p_json){const json_args=GodotRuntime.parseString(p_json);const args=JSON.parse(json_args);if(GodotConfig.on_execute){GodotConfig.on_execute(args);return 0}return 1}function _godot_js_os_finish_async(p_callback){const func=GodotRuntime.get_func(p_callback);GodotOS.finish_async(func)}function _godot_js_os_fs_is_persistent(){return GodotFS.is_persistent()}function _godot_js_os_fs_sync(callback){const func=GodotRuntime.get_func(callback);GodotOS._fs_sync_promise=GodotFS.sync();GodotOS._fs_sync_promise.then(function(err){func()})}function _godot_js_os_hw_concurrency_get(){return navigator.hardwareConcurrency||1}function _godot_js_os_request_quit_cb(p_callback){GodotOS.request_quit=GodotRuntime.get_func(p_callback)}function _godot_js_os_shell_open(p_uri){window.open(GodotRuntime.parseString(p_uri),"_blank")}var GodotPWA={hasUpdate:false,updateState:function(cb,reg){if(!reg){return}if(!reg.active){return}if(reg.waiting){GodotPWA.hasUpdate=true;cb()}GodotEventListeners.add(reg,"updatefound",function(){const installing=reg.installing;GodotEventListeners.add(installing,"statechange",function(){if(installing.state==="installed"){GodotPWA.hasUpdate=true;cb()}})})}};function _godot_js_pwa_cb(p_update_cb){if("serviceWorker"in navigator){const cb=GodotRuntime.get_func(p_update_cb);navigator.serviceWorker.getRegistration().then(GodotPWA.updateState.bind(null,cb))}}function _godot_js_pwa_update(){if("serviceWorker"in navigator&&GodotPWA.hasUpdate){navigator.serviceWorker.getRegistration().then(function(reg){if(!reg||!reg.waiting){return}reg.waiting.postMessage("update")});return 0}return 1}var GodotRTCDataChannel={connect:function(p_id,p_on_open,p_on_message,p_on_error,p_on_close){const ref=IDHandler.get(p_id);if(!ref){return}ref.binaryType="arraybuffer";ref.onopen=function(event){p_on_open()};ref.onclose=function(event){p_on_close()};ref.onerror=function(event){p_on_error()};ref.onmessage=function(event){let buffer;let is_string=0;if(event.data instanceof ArrayBuffer){buffer=new Uint8Array(event.data)}else if(event.data instanceof Blob){GodotRuntime.error("Blob type not supported");return}else if(typeof event.data==="string"){is_string=1;const enc=new TextEncoder("utf-8");buffer=new Uint8Array(enc.encode(event.data))}else{GodotRuntime.error("Unknown message type");return}const len=buffer.length*buffer.BYTES_PER_ELEMENT;const out=GodotRuntime.malloc(len);HEAPU8.set(buffer,out);p_on_message(out,len,is_string);GodotRuntime.free(out)}},close:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.onopen=null;ref.onmessage=null;ref.onerror=null;ref.onclose=null;ref.close()},get_prop:function(p_id,p_prop,p_def){const ref=IDHandler.get(p_id);return ref&&ref[p_prop]!==undefined?ref[p_prop]:p_def}};function _godot_js_rtc_datachannel_close(p_id){const ref=IDHandler.get(p_id);if(!ref){return}GodotRTCDataChannel.close(p_id)}function _godot_js_rtc_datachannel_connect(p_id,p_ref,p_on_open,p_on_message,p_on_error,p_on_close){const onopen=GodotRuntime.get_func(p_on_open).bind(null,p_ref);const onmessage=GodotRuntime.get_func(p_on_message).bind(null,p_ref);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_ref);const onclose=GodotRuntime.get_func(p_on_close).bind(null,p_ref);GodotRTCDataChannel.connect(p_id,onopen,onmessage,onerror,onclose)}function _godot_js_rtc_datachannel_destroy(p_id){GodotRTCDataChannel.close(p_id);IDHandler.remove(p_id)}function _godot_js_rtc_datachannel_get_buffered_amount(p_id){return GodotRTCDataChannel.get_prop(p_id,"bufferedAmount",0)}function _godot_js_rtc_datachannel_id_get(p_id){return GodotRTCDataChannel.get_prop(p_id,"id",65535)}function _godot_js_rtc_datachannel_is_negotiated(p_id){return GodotRTCDataChannel.get_prop(p_id,"negotiated",65535)}function _godot_js_rtc_datachannel_is_ordered(p_id){return GodotRTCDataChannel.get_prop(p_id,"ordered",true)}function _godot_js_rtc_datachannel_label_get(p_id){const ref=IDHandler.get(p_id);if(!ref||!ref.label){return 0}return GodotRuntime.allocString(ref.label)}function _godot_js_rtc_datachannel_max_packet_lifetime_get(p_id){const ref=IDHandler.get(p_id);if(!ref){return 65535}if(ref["maxPacketLifeTime"]!==undefined){return ref["maxPacketLifeTime"]}else if(ref["maxRetransmitTime"]!==undefined){return ref["maxRetransmitTime"]}return 65535}function _godot_js_rtc_datachannel_max_retransmits_get(p_id){return GodotRTCDataChannel.get_prop(p_id,"maxRetransmits",65535)}function _godot_js_rtc_datachannel_protocol_get(p_id){const ref=IDHandler.get(p_id);if(!ref||!ref.protocol){return 0}return GodotRuntime.allocString(ref.protocol)}function _godot_js_rtc_datachannel_ready_state_get(p_id){const ref=IDHandler.get(p_id);if(!ref){return 3}switch(ref.readyState){case"connecting":return 0;case"open":return 1;case"closing":return 2;case"closed":default:return 3}}function _godot_js_rtc_datachannel_send(p_id,p_buffer,p_length,p_raw){const ref=IDHandler.get(p_id);if(!ref){return 1}const bytes_array=new Uint8Array(p_length);for(let i=0;i<p_length;i++){bytes_array[i]=GodotRuntime.getHeapValue(p_buffer+i,"i8")}if(p_raw){ref.send(bytes_array.buffer)}else{const string=new TextDecoder("utf-8").decode(bytes_array);ref.send(string)}return 0}var GodotRTCPeerConnection={onstatechange:function(p_id,p_conn,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}let state;switch(p_conn.iceConnectionState){case"new":state=0;break;case"checking":state=1;break;case"connected":case"completed":state=2;break;case"disconnected":state=3;break;case"failed":state=4;break;case"closed":default:state=5;break}callback(state)},onicecandidate:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref||!event.candidate){return}const c=event.candidate;const candidate_str=GodotRuntime.allocString(c.candidate);const mid_str=GodotRuntime.allocString(c.sdpMid);callback(mid_str,c.sdpMLineIndex,candidate_str);GodotRuntime.free(candidate_str);GodotRuntime.free(mid_str)},ondatachannel:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const cid=IDHandler.add(event.channel);callback(cid)},onsession:function(p_id,callback,session){const ref=IDHandler.get(p_id);if(!ref){return}const type_str=GodotRuntime.allocString(session.type);const sdp_str=GodotRuntime.allocString(session.sdp);callback(type_str,sdp_str);GodotRuntime.free(type_str);GodotRuntime.free(sdp_str)},onerror:function(p_id,callback,error){const ref=IDHandler.get(p_id);if(!ref){return}GodotRuntime.error(error);callback()}};function _godot_js_rtc_pc_close(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.close()}function _godot_js_rtc_pc_create(p_config,p_ref,p_on_state_change,p_on_candidate,p_on_datachannel){const onstatechange=GodotRuntime.get_func(p_on_state_change).bind(null,p_ref);const oncandidate=GodotRuntime.get_func(p_on_candidate).bind(null,p_ref);const ondatachannel=GodotRuntime.get_func(p_on_datachannel).bind(null,p_ref);const config=JSON.parse(GodotRuntime.parseString(p_config));let conn=null;try{conn=new RTCPeerConnection(config)}catch(e){GodotRuntime.error(e);return 0}const base=GodotRTCPeerConnection;const id=IDHandler.add(conn);conn.oniceconnectionstatechange=base.onstatechange.bind(null,id,conn,onstatechange);conn.onicecandidate=base.onicecandidate.bind(null,id,oncandidate);conn.ondatachannel=base.ondatachannel.bind(null,id,ondatachannel);return id}function _godot_js_rtc_pc_datachannel_create(p_id,p_label,p_config){try{const ref=IDHandler.get(p_id);if(!ref){return 0}const label=GodotRuntime.parseString(p_label);const config=JSON.parse(GodotRuntime.parseString(p_config));const channel=ref.createDataChannel(label,config);return IDHandler.add(channel)}catch(e){GodotRuntime.error(e);return 0}}function _godot_js_rtc_pc_destroy(p_id){const ref=IDHandler.get(p_id);if(!ref){return}ref.oniceconnectionstatechange=null;ref.onicecandidate=null;ref.ondatachannel=null;IDHandler.remove(p_id)}function _godot_js_rtc_pc_ice_candidate_add(p_id,p_mid_name,p_mline_idx,p_sdp){const ref=IDHandler.get(p_id);if(!ref){return}const sdpMidName=GodotRuntime.parseString(p_mid_name);const sdpName=GodotRuntime.parseString(p_sdp);ref.addIceCandidate(new RTCIceCandidate({"candidate":sdpName,"sdpMid":sdpMidName,"sdpMlineIndex":p_mline_idx}))}function _godot_js_rtc_pc_local_description_set(p_id,p_type,p_sdp,p_obj,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const type=GodotRuntime.parseString(p_type);const sdp=GodotRuntime.parseString(p_sdp);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);ref.setLocalDescription({"sdp":sdp,"type":type}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_rtc_pc_offer_create(p_id,p_obj,p_on_session,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const onsession=GodotRuntime.get_func(p_on_session).bind(null,p_obj);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);ref.createOffer().then(function(session){GodotRTCPeerConnection.onsession(p_id,onsession,session)}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}function _godot_js_rtc_pc_remote_description_set(p_id,p_type,p_sdp,p_obj,p_session_created,p_on_error){const ref=IDHandler.get(p_id);if(!ref){return}const type=GodotRuntime.parseString(p_type);const sdp=GodotRuntime.parseString(p_sdp);const onerror=GodotRuntime.get_func(p_on_error).bind(null,p_obj);const onsession=GodotRuntime.get_func(p_session_created).bind(null,p_obj);ref.setRemoteDescription({"sdp":sdp,"type":type}).then(function(){if(type!=="offer"){return Promise.resolve()}return ref.createAnswer().then(function(session){GodotRTCPeerConnection.onsession(p_id,onsession,session)})}).catch(function(error){GodotRTCPeerConnection.onerror(p_id,onerror,error)})}var GodotWebSocket={_onopen:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const c_str=GodotRuntime.allocString(ref.protocol);callback(c_str);GodotRuntime.free(c_str)},_onmessage:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}let buffer;let is_string=0;if(event.data instanceof ArrayBuffer){buffer=new Uint8Array(event.data)}else if(event.data instanceof Blob){GodotRuntime.error("Blob type not supported");return}else if(typeof event.data==="string"){is_string=1;const enc=new TextEncoder("utf-8");buffer=new Uint8Array(enc.encode(event.data))}else{GodotRuntime.error("Unknown message type");return}const len=buffer.length*buffer.BYTES_PER_ELEMENT;const out=GodotRuntime.malloc(len);HEAPU8.set(buffer,out);callback(out,len,is_string);GodotRuntime.free(out)},_onerror:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}callback()},_onclose:function(p_id,callback,event){const ref=IDHandler.get(p_id);if(!ref){return}const c_str=GodotRuntime.allocString(event.reason);callback(event.code,c_str,event.wasClean?1:0);GodotRuntime.free(c_str)},send:function(p_id,p_data){const ref=IDHandler.get(p_id);if(!ref||ref.readyState!==ref.OPEN){return 1}ref.send(p_data);return 0},bufferedAmount:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return 0}return ref.bufferedAmount},create:function(socket,p_on_open,p_on_message,p_on_error,p_on_close){const id=IDHandler.add(socket);socket.onopen=GodotWebSocket._onopen.bind(null,id,p_on_open);socket.onmessage=GodotWebSocket._onmessage.bind(null,id,p_on_message);socket.onerror=GodotWebSocket._onerror.bind(null,id,p_on_error);socket.onclose=GodotWebSocket._onclose.bind(null,id,p_on_close);return id},close:function(p_id,p_code,p_reason){const ref=IDHandler.get(p_id);if(ref&&ref.readyState<ref.CLOSING){const code=p_code;const reason=GodotRuntime.parseString(p_reason);ref.close(code,reason)}},destroy:function(p_id){const ref=IDHandler.get(p_id);if(!ref){return}GodotWebSocket.close(p_id,3001,"destroyed");IDHandler.remove(p_id);ref.onopen=null;ref.onmessage=null;ref.onerror=null;ref.onclose=null}};function _godot_js_websocket_buffered_amount(p_id){return GodotWebSocket.bufferedAmount(p_id)}function _godot_js_websocket_close(p_id,p_code,p_reason){const code=p_code;const reason=GodotRuntime.parseString(p_reason);GodotWebSocket.close(p_id,code,reason)}function _godot_js_websocket_create(p_ref,p_url,p_proto,p_on_open,p_on_message,p_on_error,p_on_close){const on_open=GodotRuntime.get_func(p_on_open).bind(null,p_ref);const on_message=GodotRuntime.get_func(p_on_message).bind(null,p_ref);const on_error=GodotRuntime.get_func(p_on_error).bind(null,p_ref);const on_close=GodotRuntime.get_func(p_on_close).bind(null,p_ref);const url=GodotRuntime.parseString(p_url);const protos=GodotRuntime.parseString(p_proto);let socket=null;try{if(protos){socket=new WebSocket(url,protos.split(","))}else{socket=new WebSocket(url)}}catch(e){return 0}socket.binaryType="arraybuffer";return GodotWebSocket.create(socket,on_open,on_message,on_error,on_close)}function _godot_js_websocket_destroy(p_id){GodotWebSocket.destroy(p_id)}function _godot_js_websocket_send(p_id,p_buf,p_buf_len,p_raw){const bytes_array=new Uint8Array(p_buf_len);let i=0;for(i=0;i<p_buf_len;i++){bytes_array[i]=GodotRuntime.getHeapValue(p_buf+i,"i8")}let out=bytes_array.buffer;if(!p_raw){out=new TextDecoder("utf-8").decode(bytes_array)}return GodotWebSocket.send(p_id,out)}var GodotJSWrapper={proxies:null,MyProxy:function(val){const id=IDHandler.add(this);GodotJSWrapper.proxies.set(val,id);let refs=1;this.ref=function(){refs++};this.unref=function(){refs--;if(refs===0){IDHandler.remove(id);GodotJSWrapper.proxies.delete(val)}};this.get_val=function(){return val};this.get_id=function(){return id}},get_proxied:function(val){const id=GodotJSWrapper.proxies.get(val);if(id===undefined){const proxy=new GodotJSWrapper.MyProxy(val);return proxy.get_id()}IDHandler.get(id).ref();return id},get_proxied_value:function(id){const proxy=IDHandler.get(id);if(proxy===undefined){return undefined}return proxy.get_val()},variant2js:function(type,val){switch(type){case 0:return null;case 1:return!!GodotRuntime.getHeapValue(val,"i64");case 2:return GodotRuntime.getHeapValue(val,"i64");case 3:return GodotRuntime.getHeapValue(val,"double");case 4:return GodotRuntime.parseString(GodotRuntime.getHeapValue(val,"*"));case 17:return GodotJSWrapper.get_proxied_value(GodotRuntime.getHeapValue(val,"i64"));default:return undefined}},js2variant:function(p_val,p_exchange){if(p_val===undefined||p_val===null){return 0}const type=typeof p_val;if(type==="boolean"){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 1}else if(type==="number"){if(Number.isInteger(p_val)){GodotRuntime.setHeapValue(p_exchange,p_val,"i64");return 2}GodotRuntime.setHeapValue(p_exchange,p_val,"double");return 3}else if(type==="string"){const c_str=GodotRuntime.allocString(p_val);GodotRuntime.setHeapValue(p_exchange,c_str,"*");return 4}const id=GodotJSWrapper.get_proxied(p_val);GodotRuntime.setHeapValue(p_exchange,id,"i64");return 17}};function _godot_js_wrapper_create_cb(p_ref,p_func){const func=GodotRuntime.get_func(p_func);let id=0;const cb=function(){if(!GodotJSWrapper.get_proxied_value(id)){return}const args=Array.from(arguments);func(p_ref,GodotJSWrapper.get_proxied(args),args.length)};id=GodotJSWrapper.get_proxied(cb);return id}function _godot_js_wrapper_create_object(p_object,p_args,p_argc,p_convert_callback,p_exchange,p_lock,p_free_lock_callback){const name=GodotRuntime.parseString(p_object);if(typeof window[name]==="undefined"){return-1}const convert=GodotRuntime.get_func(p_convert_callback);const freeLock=GodotRuntime.get_func(p_free_lock_callback);const args=new Array(p_argc);for(let i=0;i<p_argc;i++){const type=convert(p_args,i,p_exchange,p_lock);const lock=GodotRuntime.getHeapValue(p_lock,"*");args[i]=GodotJSWrapper.variant2js(type,p_exchange);if(lock){freeLock(p_lock,type)}}try{const res=new window[name](...args);return GodotJSWrapper.js2variant(res,p_exchange)}catch(e){GodotRuntime.error(`Error calling constructor ${name} with args:`,args,"error:",e);return-1}}function _godot_js_wrapper_interface_get(p_name){const name=GodotRuntime.parseString(p_name);if(typeof window[name]!=="undefined"){return GodotJSWrapper.get_proxied(window[name])}return 0}function _godot_js_wrapper_object_call(p_id,p_method,p_args,p_argc,p_convert_callback,p_exchange,p_lock,p_free_lock_callback){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const method=GodotRuntime.parseString(p_method);const convert=GodotRuntime.get_func(p_convert_callback);const freeLock=GodotRuntime.get_func(p_free_lock_callback);const args=new Array(p_argc);for(let i=0;i<p_argc;i++){const type=convert(p_args,i,p_exchange,p_lock);const lock=GodotRuntime.getHeapValue(p_lock,"*");args[i]=GodotJSWrapper.variant2js(type,p_exchange);if(lock){freeLock(p_lock,type)}}try{const res=obj[method](...args);return GodotJSWrapper.js2variant(res,p_exchange)}catch(e){GodotRuntime.error(`Error calling method ${method} on:`,obj,"error:",e);return-1}}function _godot_js_wrapper_object_get(p_id,p_exchange,p_prop){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return 0}if(p_prop){const prop=GodotRuntime.parseString(p_prop);try{return GodotJSWrapper.js2variant(obj[prop],p_exchange)}catch(e){GodotRuntime.error(`Error getting variable ${prop} on object`,obj);return 0}}return GodotJSWrapper.js2variant(obj,p_exchange)}function _godot_js_wrapper_object_getvar(p_id,p_type,p_exchange){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const prop=GodotJSWrapper.variant2js(p_type,p_exchange);if(prop===undefined||prop===null){return-1}try{return GodotJSWrapper.js2variant(obj[prop],p_exchange)}catch(e){GodotRuntime.error(`Error getting variable ${prop} on object`,obj,e);return-1}}function _godot_js_wrapper_object_set(p_id,p_name,p_type,p_exchange){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return}const name=GodotRuntime.parseString(p_name);try{obj[name]=GodotJSWrapper.variant2js(p_type,p_exchange)}catch(e){GodotRuntime.error(`Error setting variable ${name} on object`,obj)}}function _godot_js_wrapper_object_setvar(p_id,p_key_type,p_key_ex,p_val_type,p_val_ex){const obj=GodotJSWrapper.get_proxied_value(p_id);if(obj===undefined){return-1}const key=GodotJSWrapper.variant2js(p_key_type,p_key_ex);try{obj[key]=GodotJSWrapper.variant2js(p_val_type,p_val_ex);return 0}catch(e){GodotRuntime.error(`Error setting variable ${key} on object`,obj);return-1}}function _godot_js_wrapper_object_unref(p_id){const proxy=IDHandler.get(p_id);if(proxy!==undefined){proxy.unref()}}var GodotWebXR={gl:null,session:null,space:null,frame:null,pose:null,orig_requestAnimationFrame:null,requestAnimationFrame:callback=>{if(GodotWebXR.session&&GodotWebXR.space){const onFrame=function(time,frame){GodotWebXR.frame=frame;GodotWebXR.pose=frame.getViewerPose(GodotWebXR.space);callback(time);GodotWebXR.frame=null;GodotWebXR.pose=null};GodotWebXR.session.requestAnimationFrame(onFrame)}else{GodotWebXR.orig_requestAnimationFrame(callback)}},monkeyPatchRequestAnimationFrame:enable=>{if(GodotWebXR.orig_requestAnimationFrame===null){GodotWebXR.orig_requestAnimationFrame=Browser.requestAnimationFrame}Browser.requestAnimationFrame=enable?GodotWebXR.requestAnimationFrame:GodotWebXR.orig_requestAnimationFrame},pauseResumeMainLoop:()=>{Browser.mainLoop.pause();window.setTimeout(function(){Browser.mainLoop.resume()},0)},shaderProgram:null,programInfo:null,buffer:null,vsSource:"\n\t\t\tconst vec2 scale = vec2(0.5, 0.5);\n\t\t\tattribute vec4 aVertexPosition;\n\n\t\t\tvarying highp vec2 vTextureCoord;\n\n\t\t\tvoid main () {\n\t\t\t\tgl_Position = aVertexPosition;\n\t\t\t\tvTextureCoord = aVertexPosition.xy * scale + scale;\n\t\t\t}\n\t\t",fsSource:"\n\t\t\tvarying highp vec2 vTextureCoord;\n\n\t\t\tuniform sampler2D uSampler;\n\n\t\t\tvoid main() {\n\t\t\t\tgl_FragColor = texture2D(uSampler, vTextureCoord);\n\t\t\t}\n\t\t",initShaderProgram:(gl,vsSource,fsSource)=>{const vertexShader=GodotWebXR.loadShader(gl,gl.VERTEX_SHADER,vsSource);const fragmentShader=GodotWebXR.loadShader(gl,gl.FRAGMENT_SHADER,fsSource);const shaderProgram=gl.createProgram();gl.attachShader(shaderProgram,vertexShader);gl.attachShader(shaderProgram,fragmentShader);gl.linkProgram(shaderProgram);if(!gl.getProgramParameter(shaderProgram,gl.LINK_STATUS)){GodotRuntime.error(`Unable to initialize the shader program: ${gl.getProgramInfoLog(shaderProgram)}`);return null}return shaderProgram},loadShader:(gl,type,source)=>{const shader=gl.createShader(type);gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){GodotRuntime.error(`An error occurred compiling the shader: ${gl.getShaderInfoLog(shader)}`);gl.deleteShader(shader);return null}return shader},initBuffer:gl=>{const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);const positions=[-1,-1,1,-1,-1,1,1,1];gl.bufferData(gl.ARRAY_BUFFER,new Float32Array(positions),gl.STATIC_DRAW);return positionBuffer},blitTexture:(gl,texture)=>{if(GodotWebXR.shaderProgram===null){GodotWebXR.shaderProgram=GodotWebXR.initShaderProgram(gl,GodotWebXR.vsSource,GodotWebXR.fsSource);GodotWebXR.programInfo={program:GodotWebXR.shaderProgram,attribLocations:{vertexPosition:gl.getAttribLocation(GodotWebXR.shaderProgram,"aVertexPosition")},uniformLocations:{uSampler:gl.getUniformLocation(GodotWebXR.shaderProgram,"uSampler")}};GodotWebXR.buffer=GodotWebXR.initBuffer(gl)}const orig_program=gl.getParameter(gl.CURRENT_PROGRAM);gl.useProgram(GodotWebXR.shaderProgram);gl.bindBuffer(gl.ARRAY_BUFFER,GodotWebXR.buffer);gl.vertexAttribPointer(GodotWebXR.programInfo.attribLocations.vertexPosition,2,gl.FLOAT,false,0,0);gl.enableVertexAttribArray(GodotWebXR.programInfo.attribLocations.vertexPosition);gl.activeTexture(gl.TEXTURE0);gl.bindTexture(gl.TEXTURE_2D,texture);gl.uniform1i(GodotWebXR.programInfo.uniformLocations.uSampler,0);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);gl.bindTexture(gl.TEXTURE_2D,null);gl.disableVertexAttribArray(GodotWebXR.programInfo.attribLocations.vertexPosition);gl.bindBuffer(gl.ARRAY_BUFFER,null);gl.useProgram(orig_program)},controllers:[],sampleControllers:()=>{if(!GodotWebXR.session){return}let other_index=2;const controllers=[];GodotWebXR.session.inputSources.forEach(input_source=>{if(input_source.targetRayMode==="tracked-pointer"){if(input_source.handedness==="right"){controllers[1]=input_source}else if(input_source.handedness==="left"||!controllers[0]){controllers[0]=input_source}}else{controllers[other_index++]=input_source}});GodotWebXR.controllers=controllers},getControllerId:input_source=>GodotWebXR.controllers.indexOf(input_source)};function _godot_webxr_commit_for_eye(p_eye,p_texture_id){if(!GodotWebXR.session||!GodotWebXR.pose){return}const view_index=p_eye===2?1:0;const glLayer=GodotWebXR.session.renderState.baseLayer;const view=GodotWebXR.pose.views[view_index];const viewport=glLayer.getViewport(view);const gl=GodotWebXR.gl;const orig_framebuffer=gl.getParameter(gl.FRAMEBUFFER_BINDING);const orig_viewport=gl.getParameter(gl.VIEWPORT);gl.bindFramebuffer(gl.FRAMEBUFFER,glLayer.framebuffer);gl.viewport(viewport.x,viewport.y,viewport.width,viewport.height);GodotWebXR.blitTexture(gl,GL.textures[p_texture_id]);gl.bindFramebuffer(gl.FRAMEBUFFER,orig_framebuffer);gl.viewport(orig_viewport[0],orig_viewport[1],orig_viewport[2],orig_viewport[3])}function _godot_webxr_get_bounds_geometry(){if(!GodotWebXR.space||!GodotWebXR.space.boundsGeometry){return 0}const point_count=GodotWebXR.space.boundsGeometry.length;if(point_count===0){return 0}const buf=GodotRuntime.malloc((point_count*3+1)*4);GodotRuntime.setHeapValue(buf,point_count,"i32");for(let i=0;i<point_count;i++){const point=GodotWebXR.space.boundsGeometry[i];GodotRuntime.setHeapValue(buf+(i*3+1)*4,point.x,"float");GodotRuntime.setHeapValue(buf+(i*3+2)*4,point.y,"float");GodotRuntime.setHeapValue(buf+(i*3+3)*4,point.z,"float")}return buf}function _godot_webxr_get_controller_axes(p_controller,p_xr_standard_mapping){if(GodotWebXR.controllers.length===0){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller||!controller.gamepad){return 0}let axes=controller.gamepad.axes;if(controller.gamepad.mapping==="xr-standard"){if(p_xr_standard_mapping){const trigger_axis=controller.gamepad.buttons[0].value;const grip_axis=controller.gamepad.buttons[1].value;axes=[axes[2],axes[3]*-1,trigger_axis,grip_axis,grip_axis,0,axes[0],axes[1]*-1]}else{axes[1]*=-1;axes[3]*=-1}}const buf=GodotRuntime.malloc((axes.length+1)*4);GodotRuntime.setHeapValue(buf,axes.length,"i32");for(let i=0;i<axes.length;i++){GodotRuntime.setHeapValue(buf+4+i*4,axes[i],"float")}return buf}function _godot_webxr_get_controller_buttons(p_controller,p_xr_standard_mapping){if(GodotWebXR.controllers.length===0){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller||!controller.gamepad){return 0}let buttons=controller.gamepad.buttons;if(controller.gamepad.mapping==="xr-standard"&&p_xr_standard_mapping){buttons=[0,buttons[5],buttons[1],buttons[3],buttons[6],buttons[7],buttons[8],buttons[4],buttons[9],buttons[10],buttons[11],buttons[12],buttons[13],buttons[14],buttons[2],buttons[0]]}const buf=GodotRuntime.malloc((buttons.length+1)*4);GodotRuntime.setHeapValue(buf,buttons.length,"i32");for(let i=0;i<buttons.length;i++){GodotRuntime.setHeapValue(buf+4+i*4,buttons[i]?buttons[i].value:0,"float")}return buf}function _godot_webxr_get_controller_count(){if(!GodotWebXR.session||!GodotWebXR.frame){return 0}return GodotWebXR.controllers.length}function _godot_webxr_get_controller_target_ray_mode(p_controller){if(p_controller<0||p_controller>=GodotWebXR.controllers.length){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller){return 0}switch(controller.targetRayMode){case"gaze":return 1;case"tracked-pointer":return 2;case"screen":return 3;default:break}return 0}function _godot_webxr_get_controller_transform(p_controller){if(!GodotWebXR.session||!GodotWebXR.frame){return 0}const controller=GodotWebXR.controllers[p_controller];if(!controller){return 0}const frame=GodotWebXR.frame;const space=GodotWebXR.space;const pose=frame.getPose(controller.targetRaySpace,space);if(!pose){return 0}const matrix=pose.transform.matrix;const buf=GodotRuntime.malloc(16*4);for(let i=0;i<16;i++){GodotRuntime.setHeapValue(buf+i*4,matrix[i],"float")}return buf}function _godot_webxr_get_projection_for_eye(p_eye){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}const view_index=p_eye===2?1:0;const matrix=GodotWebXR.pose.views[view_index].projectionMatrix;const buf=GodotRuntime.malloc(16*4);for(let i=0;i<16;i++){GodotRuntime.setHeapValue(buf+i*4,matrix[i],"float")}return buf}function _godot_webxr_get_render_targetsize(){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}const glLayer=GodotWebXR.session.renderState.baseLayer;const view=GodotWebXR.pose.views[0];const viewport=glLayer.getViewport(view);const buf=GodotRuntime.malloc(2*4);GodotRuntime.setHeapValue(buf+0,viewport.width,"i32");GodotRuntime.setHeapValue(buf+4,viewport.height,"i32");return buf}function _godot_webxr_get_transform_for_eye(p_eye){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}const views=GodotWebXR.pose.views;let matrix;if(p_eye===0){matrix=GodotWebXR.pose.transform.matrix}else{matrix=views[p_eye-1].transform.matrix}const buf=GodotRuntime.malloc(16*4);for(let i=0;i<16;i++){GodotRuntime.setHeapValue(buf+i*4,matrix[i],"float")}return buf}function _godot_webxr_get_view_count(){if(!GodotWebXR.session||!GodotWebXR.pose){return 0}return GodotWebXR.pose.views.length}function _godot_webxr_get_visibility_state(){if(!GodotWebXR.session||!GodotWebXR.session.visibilityState){return 0}return GodotRuntime.allocString(GodotWebXR.session.visibilityState)}function _godot_webxr_initialize(p_session_mode,p_required_features,p_optional_features,p_requested_reference_spaces,p_on_session_started,p_on_session_ended,p_on_session_failed,p_on_controller_changed,p_on_input_event,p_on_simple_event){GodotWebXR.monkeyPatchRequestAnimationFrame(true);const session_mode=GodotRuntime.parseString(p_session_mode);const required_features=GodotRuntime.parseString(p_required_features).split(",").map(s=>s.trim()).filter(s=>s!=="");const optional_features=GodotRuntime.parseString(p_optional_features).split(",").map(s=>s.trim()).filter(s=>s!=="");const requested_reference_space_types=GodotRuntime.parseString(p_requested_reference_spaces).split(",").map(s=>s.trim());const onstarted=GodotRuntime.get_func(p_on_session_started);const onended=GodotRuntime.get_func(p_on_session_ended);const onfailed=GodotRuntime.get_func(p_on_session_failed);const oncontroller=GodotRuntime.get_func(p_on_controller_changed);const oninputevent=GodotRuntime.get_func(p_on_input_event);const onsimpleevent=GodotRuntime.get_func(p_on_simple_event);const session_init={};if(required_features.length>0){session_init["requiredFeatures"]=required_features}if(optional_features.length>0){session_init["optionalFeatures"]=optional_features}navigator.xr.requestSession(session_mode,session_init).then(function(session){GodotWebXR.session=session;session.addEventListener("end",function(evt){onended()});session.addEventListener("inputsourceschange",function(evt){let controller_changed=false;[evt.added,evt.removed].forEach(lst=>{lst.forEach(input_source=>{if(input_source.targetRayMode==="tracked-pointer"){controller_changed=true}})});if(controller_changed){oncontroller()}});["selectstart","selectend","select","squeezestart","squeezeend","squeeze"].forEach((input_event,index)=>{session.addEventListener(input_event,function(evt){GodotWebXR.sampleControllers();oninputevent(index,GodotWebXR.getControllerId(evt.inputSource))})});session.addEventListener("visibilitychange",function(evt){const c_str=GodotRuntime.allocString("visibility_state_changed");onsimpleevent(c_str);GodotRuntime.free(c_str)});const gl_context_handle=_emscripten_webgl_get_current_context();const gl=GL.getContext(gl_context_handle).GLctx;GodotWebXR.gl=gl;gl.makeXRCompatible().then(function(){session.updateRenderState({baseLayer:new XRWebGLLayer(session,gl)});function onReferenceSpaceSuccess(reference_space,reference_space_type){GodotWebXR.space=reference_space;reference_space.onreset=function(evt){const c_str=GodotRuntime.allocString("reference_space_reset");onsimpleevent(c_str);GodotRuntime.free(c_str)};GodotWebXR.pauseResumeMainLoop();window.setTimeout(function(){const c_str=GodotRuntime.allocString(reference_space_type);onstarted(c_str);GodotRuntime.free(c_str)},0)}function requestReferenceSpace(){const reference_space_type=requested_reference_space_types.shift();session.requestReferenceSpace(reference_space_type).then(refSpace=>{onReferenceSpaceSuccess(refSpace,reference_space_type)}).catch(()=>{if(requested_reference_space_types.length===0){const c_str=GodotRuntime.allocString("Unable to get any of the requested reference space types");onfailed(c_str);GodotRuntime.free(c_str)}else{requestReferenceSpace()}})}requestReferenceSpace()}).catch(function(error){const c_str=GodotRuntime.allocString(`Unable to make WebGL context compatible with WebXR: ${error}`);onfailed(c_str);GodotRuntime.free(c_str)})}).catch(function(error){const c_str=GodotRuntime.allocString(`Unable to start session: ${error}`);onfailed(c_str);GodotRuntime.free(c_str)})}function _godot_webxr_is_controller_connected(p_controller){if(!GodotWebXR.session||!GodotWebXR.frame){return false}return!!GodotWebXR.controllers[p_controller]}function _godot_webxr_is_session_supported(p_session_mode,p_callback){const session_mode=GodotRuntime.parseString(p_session_mode);const cb=GodotRuntime.get_func(p_callback);if(navigator.xr){navigator.xr.isSessionSupported(session_mode).then(function(supported){const c_str=GodotRuntime.allocString(session_mode);cb(c_str,supported?1:0);GodotRuntime.free(c_str)})}else{const c_str=GodotRuntime.allocString(session_mode);cb(c_str,0);GodotRuntime.free(c_str)}}function _godot_webxr_is_supported(){return!!navigator.xr}function _godot_webxr_sample_controller_data(){GodotWebXR.sampleControllers()}function _godot_webxr_uninitialize(){if(GodotWebXR.session){GodotWebXR.session.end().catch(e=>{})}GodotWebXR.session=null;GodotWebXR.space=null;GodotWebXR.frame=null;GodotWebXR.pose=null;GodotWebXR.monkeyPatchRequestAnimationFrame(false);GodotWebXR.pauseResumeMainLoop()}function _setTempRet0(val){setTempRet0(val)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length<digits){str=character[0]+str}return str}function leadingNulls(value,digits){return leadingSomething(value,digits,"0")}function compareByDay(date1,date2){function sgn(value){return value<0?-1:value>0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};var preloadedImages={};var preloadedAudios={};var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["request_quit"]=function(){GodotOS.request_quit()};Module["onExit"]=GodotOS.cleanup;GodotOS._fs_sync_promise=Promise.resolve();Module["initConfig"]=GodotConfig.init_config;Module["initFS"]=GodotFS.init;Module["copyToFS"]=GodotFS.copy_to_fs;ERRNO_CODES={"EPERM":63,"ENOENT":44,"ESRCH":71,"EINTR":27,"EIO":29,"ENXIO":60,"E2BIG":1,"ENOEXEC":45,"EBADF":8,"ECHILD":12,"EAGAIN":6,"EWOULDBLOCK":6,"ENOMEM":48,"EACCES":2,"EFAULT":21,"ENOTBLK":105,"EBUSY":10,"EEXIST":20,"EXDEV":75,"ENODEV":43,"ENOTDIR":54,"EISDIR":31,"EINVAL":28,"ENFILE":41,"EMFILE":33,"ENOTTY":59,"ETXTBSY":74,"EFBIG":22,"ENOSPC":51,"ESPIPE":70,"EROFS":69,"EMLINK":34,"EPIPE":64,"EDOM":18,"ERANGE":68,"ENOMSG":49,"EIDRM":24,"ECHRNG":106,"EL2NSYNC":156,"EL3HLT":107,"EL3RST":108,"ELNRNG":109,"EUNATCH":110,"ENOCSI":111,"EL2HLT":112,"EDEADLK":16,"ENOLCK":46,"EBADE":113,"EBADR":114,"EXFULL":115,"ENOANO":104,"EBADRQC":103,"EBADSLT":102,"EDEADLOCK":16,"EBFONT":101,"ENOSTR":100,"ENODATA":116,"ETIME":117,"ENOSR":118,"ENONET":119,"ENOPKG":120,"EREMOTE":121,"ENOLINK":47,"EADV":122,"ESRMNT":123,"ECOMM":124,"EPROTO":65,"EMULTIHOP":36,"EDOTDOT":125,"EBADMSG":9,"ENOTUNIQ":126,"EBADFD":127,"EREMCHG":128,"ELIBACC":129,"ELIBBAD":130,"ELIBSCN":131,"ELIBMAX":132,"ELIBEXEC":133,"ENOSYS":52,"ENOTEMPTY":55,"ENAMETOOLONG":37,"ELOOP":32,"EOPNOTSUPP":138,"EPFNOSUPPORT":139,"ECONNRESET":15,"ENOBUFS":42,"EAFNOSUPPORT":5,"EPROTOTYPE":67,"ENOTSOCK":57,"ENOPROTOOPT":50,"ESHUTDOWN":140,"ECONNREFUSED":14,"EADDRINUSE":3,"ECONNABORTED":13,"ENETUNREACH":40,"ENETDOWN":38,"ETIMEDOUT":73,"EHOSTDOWN":142,"EHOSTUNREACH":23,"EINPROGRESS":26,"EALREADY":7,"EDESTADDRREQ":17,"EMSGSIZE":35,"EPROTONOSUPPORT":66,"ESOCKTNOSUPPORT":137,"EADDRNOTAVAIL":4,"ENETRESET":39,"EISCONN":30,"ENOTCONN":53,"ETOOMANYREFS":141,"EUSERS":136,"EDQUOT":19,"ESTALE":72,"ENOTSUP":138,"ENOMEDIUM":148,"EILSEQ":25,"EOVERFLOW":61,"ECANCELED":11,"ENOTRECOVERABLE":56,"EOWNERDEAD":62,"ESTRPIPE":135};GodotOS.atexit(function(resolve,reject){GodotDisplayCursor.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotEventListeners.clear();resolve()});GodotOS.atexit(function(resolve,reject){GodotDisplayVK.clear();resolve()});GodotJSWrapper.proxies=new Map;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Xc":___call_sighandler,"Rc":___syscall__newselect,"Mc":___syscall_accept4,"Lc":___syscall_bind,"rd":___syscall_chdir,"qd":___syscall_chmod,"Kc":___syscall_connect,"sd":___syscall_faccessat,"Fa":___syscall_fcntl64,"fd":___syscall_getcwd,"Wc":___syscall_getdents64,"Jc":___syscall_getsockname,"Ic":___syscall_getsockopt,"mb":___syscall_ioctl,"Hc":___syscall_listen,"ad":___syscall_lstat64,"_c":___syscall_mkdirat,"$c":___syscall_newfstatat,"nb":___syscall_openat,"Zc":___syscall_poll,"Vc":___syscall_readlinkat,"Gc":___syscall_recvfrom,"Sc":___syscall_renameat,"Tc":___syscall_rmdir,"Fc":___syscall_sendto,"jb":___syscall_socket,"bd":___syscall_stat64,"Qc":___syscall_statfs64,"Pc":___syscall_symlink,"Uc":___syscall_unlinkat,"nd":__dlinit,"pd":__dlopen_js,"od":__dlsym_js,"Va":__emscripten_date_now,"id":__emscripten_get_now_is_monotonic,"Ec":__emscripten_throw_longjmp,"jd":__gmtime_js,"kd":__localtime_js,"md":__tzset_js,"ja":_abort,"qb":_emscripten_cancel_main_loop,"Jh":_emscripten_force_exit,"Ua":_emscripten_get_now,"yi":_emscripten_glActiveTexture,"xi":_emscripten_glAttachShader,"mf":_emscripten_glBeginQuery,"Qi":_emscripten_glBeginQueryEXT,"Ue":_emscripten_glBeginTransformFeedback,"wi":_emscripten_glBindAttribLocation,"vi":_emscripten_glBindBuffer,"Qe":_emscripten_glBindBufferBase,"Re":_emscripten_glBindBufferRange,"ui":_emscripten_glBindFramebuffer,"ti":_emscripten_glBindRenderbuffer,"Td":_emscripten_glBindSampler,"si":_emscripten_glBindTexture,"Kd":_emscripten_glBindTransformFeedback,"Ze":_emscripten_glBindVertexArray,"Hi":_emscripten_glBindVertexArrayOES,"ri":_emscripten_glBlendColor,"qi":_emscripten_glBlendEquation,"pi":_emscripten_glBlendEquationSeparate,"ni":_emscripten_glBlendFunc,"mi":_emscripten_glBlendFuncSeparate,"af":_emscripten_glBlitFramebuffer,"li":_emscripten_glBufferData,"ki":_emscripten_glBufferSubData,"ji":_emscripten_glCheckFramebufferStatus,"ii":_emscripten_glClear,"re":_emscripten_glClearBufferfi,"se":_emscripten_glClearBufferfv,"ue":_emscripten_glClearBufferiv,"te":_emscripten_glClearBufferuiv,"hi":_emscripten_glClearColor,"gi":_emscripten_glClearDepthf,"fi":_emscripten_glClearStencil,"ce":_emscripten_glClientWaitSync,"ei":_emscripten_glColorMask,"bi":_emscripten_glCompileShader,"ai":_emscripten_glCompressedTexImage2D,"rf":_emscripten_glCompressedTexImage3D,"$h":_emscripten_glCompressedTexSubImage2D,"qf":_emscripten_glCompressedTexSubImage3D,"pe":_emscripten_glCopyBufferSubData,"_h":_emscripten_glCopyTexImage2D,"Zh":_emscripten_glCopyTexSubImage2D,"sf":_emscripten_glCopyTexSubImage3D,"Yh":_emscripten_glCreateProgram,"Xh":_emscripten_glCreateShader,"Wh":_emscripten_glCullFace,"Vh":_emscripten_glDeleteBuffers,"Uh":_emscripten_glDeleteFramebuffers,"Th":_emscripten_glDeleteProgram,"of":_emscripten_glDeleteQueries,"Si":_emscripten_glDeleteQueriesEXT,"Sh":_emscripten_glDeleteRenderbuffers,"Vd":_emscripten_glDeleteSamplers,"Rh":_emscripten_glDeleteShader,"de":_emscripten_glDeleteSync,"Qh":_emscripten_glDeleteTextures,"Jd":_emscripten_glDeleteTransformFeedbacks,"Ye":_emscripten_glDeleteVertexArrays,"Gi":_emscripten_glDeleteVertexArraysOES,"Ph":_emscripten_glDepthFunc,"Oh":_emscripten_glDepthMask,"Nh":_emscripten_glDepthRangef,"Mh":_emscripten_glDetachShader,"Lh":_emscripten_glDisable,"Kh":_emscripten_glDisableVertexAttribArray,"Ih":_emscripten_glDrawArrays,"he":_emscripten_glDrawArraysInstanced,"Ci":_emscripten_glDrawArraysInstancedANGLE,"Bf":_emscripten_glDrawArraysInstancedARB,"Cf":_emscripten_glDrawArraysInstancedEXT,"td":_emscripten_glDrawArraysInstancedNV,"hf":_emscripten_glDrawBuffers,"xf":_emscripten_glDrawBuffersEXT,"Di":_emscripten_glDrawBuffersWEBGL,"Hh":_emscripten_glDrawElements,"ge":_emscripten_glDrawElementsInstanced,"Bi":_emscripten_glDrawElementsInstancedANGLE,"yf":_emscripten_glDrawElementsInstancedARB,"zf":_emscripten_glDrawElementsInstancedEXT,"Af":_emscripten_glDrawElementsInstancedNV,"vf":_emscripten_glDrawRangeElements,"Gh":_emscripten_glEnable,"Fh":_emscripten_glEnableVertexAttribArray,"lf":_emscripten_glEndQuery,"Pi":_emscripten_glEndQueryEXT,"Se":_emscripten_glEndTransformFeedback,"fe":_emscripten_glFenceSync,"Eh":_emscripten_glFinish,"Dh":_emscripten_glFlush,"Ch":_emscripten_glFramebufferRenderbuffer,"Bh":_emscripten_glFramebufferTexture2D,"_e":_emscripten_glFramebufferTextureLayer,"Ah":_emscripten_glFrontFace,"zh":_emscripten_glGenBuffers,"xh":_emscripten_glGenFramebuffers,"pf":_emscripten_glGenQueries,"Ti":_emscripten_glGenQueriesEXT,"wh":_emscripten_glGenRenderbuffers,"Wd":_emscripten_glGenSamplers,"vh":_emscripten_glGenTextures,"Id":_emscripten_glGenTransformFeedbacks,"Xe":_emscripten_glGenVertexArrays,"Fi":_emscripten_glGenVertexArraysOES,"yh":_emscripten_glGenerateMipmap,"uh":_emscripten_glGetActiveAttrib,"th":_emscripten_glGetActiveUniform,"je":_emscripten_glGetActiveUniformBlockName,"ke":_emscripten_glGetActiveUniformBlockiv,"ne":_emscripten_glGetActiveUniformsiv,"sh":_emscripten_glGetAttachedShaders,"rh":_emscripten_glGetAttribLocation,"qh":_emscripten_glGetBooleanv,"Xd":_emscripten_glGetBufferParameteri64v,"ph":_emscripten_glGetBufferParameteriv,"nh":_emscripten_glGetError,"mh":_emscripten_glGetFloatv,"Ee":_emscripten_glGetFragDataLocation,"lh":_emscripten_glGetFramebufferAttachmentParameteriv,"Yd":_emscripten_glGetInteger64i_v,"_d":_emscripten_glGetInteger64v,"Ve":_emscripten_glGetIntegeri_v,"kh":_emscripten_glGetIntegerv,"wd":_emscripten_glGetInternalformativ,"Dd":_emscripten_glGetProgramBinary,"ih":_emscripten_glGetProgramInfoLog,"jh":_emscripten_glGetProgramiv,"Ji":_emscripten_glGetQueryObjecti64vEXT,"Mi":_emscripten_glGetQueryObjectivEXT,"Ii":_emscripten_glGetQueryObjectui64vEXT,"jf":_emscripten_glGetQueryObjectuiv,"Li":_emscripten_glGetQueryObjectuivEXT,"kf":_emscripten_glGetQueryiv,"Ni":_emscripten_glGetQueryivEXT,"hh":_emscripten_glGetRenderbufferParameteriv,"Md":_emscripten_glGetSamplerParameterfv,"Nd":_emscripten_glGetSamplerParameteriv,"fh":_emscripten_glGetShaderInfoLog,"eh":_emscripten_glGetShaderPrecisionFormat,"ch":_emscripten_glGetShaderSource,"gh":_emscripten_glGetShaderiv,"bh":_emscripten_glGetString,"qe":_emscripten_glGetStringi,"Zd":_emscripten_glGetSynciv,"ah":_emscripten_glGetTexParameterfv,"$g":_emscripten_glGetTexParameteriv,"Oe":_emscripten_glGetTransformFeedbackVarying,"le":_emscripten_glGetUniformBlockIndex,"oe":_emscripten_glGetUniformIndices,"Yg":_emscripten_glGetUniformLocation,"_g":_emscripten_glGetUniformfv,"Zg":_emscripten_glGetUniformiv,"Fe":_emscripten_glGetUniformuiv,"Me":_emscripten_glGetVertexAttribIiv,"Le":_emscripten_glGetVertexAttribIuiv,"Vg":_emscripten_glGetVertexAttribPointerv,"Xg":_emscripten_glGetVertexAttribfv,"Wg":_emscripten_glGetVertexAttribiv,"Tg":_emscripten_glHint,"Ad":_emscripten_glInvalidateFramebuffer,"zd":_emscripten_glInvalidateSubFramebuffer,"Sg":_emscripten_glIsBuffer,"Rg":_emscripten_glIsEnabled,"Qg":_emscripten_glIsFramebuffer,"Pg":_emscripten_glIsProgram,"nf":_emscripten_glIsQuery,"Ri":_emscripten_glIsQueryEXT,"Og":_emscripten_glIsRenderbuffer,"Ud":_emscripten_glIsSampler,"Ng":_emscripten_glIsShader,"ee":_emscripten_glIsSync,"Mg":_emscripten_glIsTexture,"Hd":_emscripten_glIsTransformFeedback,"We":_emscripten_glIsVertexArray,"Ei":_emscripten_glIsVertexArrayOES,"Lg":_emscripten_glLineWidth,"Kg":_emscripten_glLinkProgram,"Fd":_emscripten_glPauseTransformFeedback,"Ig":_emscripten_glPixelStorei,"Hg":_emscripten_glPolygonOffset,"Cd":_emscripten_glProgramBinary,"Bd":_emscripten_glProgramParameteri,"Oi":_emscripten_glQueryCounterEXT,"wf":_emscripten_glReadBuffer,"Gg":_emscripten_glReadPixels,"Fg":_emscripten_glReleaseShaderCompiler,"Eg":_emscripten_glRenderbufferStorage,"$e":_emscripten_glRenderbufferStorageMultisample,"Ed":_emscripten_glResumeTransformFeedback,"Dg":_emscripten_glSampleCoverage,"Pd":_emscripten_glSamplerParameterf,"Od":_emscripten_glSamplerParameterfv,"Sd":_emscripten_glSamplerParameteri,"Qd":_emscripten_glSamplerParameteriv,"Cg":_emscripten_glScissor,"Bg":_emscripten_glShaderBinary,"Ag":_emscripten_glShaderSource,"zg":_emscripten_glStencilFunc,"xg":_emscripten_glStencilFuncSeparate,"wg":_emscripten_glStencilMask,"vg":_emscripten_glStencilMaskSeparate,"ug":_emscripten_glStencilOp,"tg":_emscripten_glStencilOpSeparate,"sg":_emscripten_glTexImage2D,"uf":_emscripten_glTexImage3D,"rg":_emscripten_glTexParameterf,"qg":_emscripten_glTexParameterfv,"pg":_emscripten_glTexParameteri,"og":_emscripten_glTexParameteriv,"yd":_emscripten_glTexStorage2D,"xd":_emscripten_glTexStorage3D,"mg":_emscripten_glTexSubImage2D,"tf":_emscripten_glTexSubImage3D,"Pe":_emscripten_glTransformFeedbackVaryings,"lg":_emscripten_glUniform1f,"kg":_emscripten_glUniform1fv,"jg":_emscripten_glUniform1i,"ig":_emscripten_glUniform1iv,"De":_emscripten_glUniform1ui,"ze":_emscripten_glUniform1uiv,"hg":_emscripten_glUniform2f,"gg":_emscripten_glUniform2fv,"fg":_emscripten_glUniform2i,"eg":_emscripten_glUniform2iv,"Ce":_emscripten_glUniform2ui,"ye":_emscripten_glUniform2uiv,"dg":_emscripten_glUniform3f,"ag":_emscripten_glUniform3fv,"$f":_emscripten_glUniform3i,"_f":_emscripten_glUniform3iv,"Be":_emscripten_glUniform3ui,"we":_emscripten_glUniform3uiv,"Zf":_emscripten_glUniform4f,"Yf":_emscripten_glUniform4fv,"Xf":_emscripten_glUniform4i,"Wf":_emscripten_glUniform4iv,"Ae":_emscripten_glUniform4ui,"ve":_emscripten_glUniform4uiv,"ie":_emscripten_glUniformBlockBinding,"Vf":_emscripten_glUniformMatrix2fv,"gf":_emscripten_glUniformMatrix2x3fv,"ef":_emscripten_glUniformMatrix2x4fv,"Uf":_emscripten_glUniformMatrix3fv,"ff":_emscripten_glUniformMatrix3x2fv,"cf":_emscripten_glUniformMatrix3x4fv,"Tf":_emscripten_glUniformMatrix4fv,"df":_emscripten_glUniformMatrix4x2fv,"bf":_emscripten_glUniformMatrix4x3fv,"Rf":_emscripten_glUseProgram,"Qf":_emscripten_glValidateProgram,"Pf":_emscripten_glVertexAttrib1f,"Of":_emscripten_glVertexAttrib1fv,"Nf":_emscripten_glVertexAttrib2f,"Mf":_emscripten_glVertexAttrib2fv,"Lf":_emscripten_glVertexAttrib3f,"Kf":_emscripten_glVertexAttrib3fv,"Jf":_emscripten_glVertexAttrib4f,"If":_emscripten_glVertexAttrib4fv,"Ld":_emscripten_glVertexAttribDivisor,"Ai":_emscripten_glVertexAttribDivisorANGLE,"Df":_emscripten_glVertexAttribDivisorARB,"Ef":_emscripten_glVertexAttribDivisorEXT,"ud":_emscripten_glVertexAttribDivisorNV,"Ke":_emscripten_glVertexAttribI4i,"He":_emscripten_glVertexAttribI4iv,"Je":_emscripten_glVertexAttribI4ui,"Ge":_emscripten_glVertexAttribI4uiv,"Ne":_emscripten_glVertexAttribIPointer,"Gf":_emscripten_glVertexAttribPointer,"Ff":_emscripten_glViewport,"$d":_emscripten_glWaitSync,"hd":_emscripten_memcpy_big,"Ta":_emscripten_resize_heap,"pb":_emscripten_set_main_loop,"fb":_emscripten_webgl_commit_frame,"Cc":_emscripten_webgl_create_context,"bc":_emscripten_webgl_destroy_context,"Oc":_emscripten_webgl_init_context_attributes,"xc":_emscripten_webgl_make_context_current,"dd":_environ_get,"ed":_environ_sizes_get,"ua":_fd_close,"cd":_fd_fdstat_get,"lb":_fd_read,"Ac":_fd_seek,"kb":_fd_write,"k":_getTempRet0,"Sa":_getaddrinfo,"Pb":_getnameinfo,"c":_glActiveTexture,"Na":_glAttachShader,"bb":_glBeginTransformFeedback,"vb":_glBindAttribLocation,"b":_glBindBuffer,"P":_glBindBufferBase,"e":_glBindFramebuffer,"_":_glBindRenderbuffer,"a":_glBindTexture,"m":_glBindVertexArray,"D":_glBlendEquation,"X":_glBlendFunc,"w":_glBlendFuncSeparate,"ha":_glBlitFramebuffer,"q":_glBufferData,"K":_glBufferSubData,"M":_glCheckFramebufferStatus,"J":_glClear,"qa":_glClearBufferfv,"O":_glClearColor,"aa":_glClearDepthf,"N":_glColorMask,"ka":_glCompileShader,"Ab":_glCompressedTexImage2D,"gj":_glCompressedTexSubImage2D,"zb":_glCompressedTexSubImage3D,"ej":_glCopyBufferSubData,"_a":_glCopyTexSubImage2D,"$a":_glCreateProgram,"Da":_glCreateShader,"ra":_glCullFace,"L":_glDeleteBuffers,"F":_glDeleteFramebuffers,"Q":_glDeleteProgram,"U":_glDeleteRenderbuffers,"I":_glDeleteShader,"A":_glDeleteTextures,"ea":_glDeleteVertexArrays,"Y":_glDepthFunc,"H":_glDepthMask,"i":_glDisable,"p":_glDisableVertexAttribArray,"B":_glDrawArrays,"ya":_glDrawArraysInstanced,"Ja":_glDrawBuffers,"ba":_glDrawElements,"Ka":_glDrawElementsInstanced,"s":_glEnable,"j":_glEnableVertexAttribArray,"ab":_glEndTransformFeedback,"Db":_glFinish,"Z":_glFramebufferRenderbuffer,"x":_glFramebufferTexture2D,"fj":_glFramebufferTextureLayer,"Bb":_glFrontFace,"C":_glGenBuffers,"E":_glGenFramebuffers,"ga":_glGenRenderbuffers,"v":_glGenTextures,"W":_glGenVertexArrays,"R":_glGenerateMipmap,"Cb":_glGetError,"wb":_glGetFloatv,"$":_glGetIntegerv,"Zi":_glGetProgramBinary,"tb":_glGetProgramInfoLog,"Ea":_glGetProgramiv,"Oa":_glGetShaderInfoLog,"Vi":_glGetShaderSource,"da":_glGetShaderiv,"wa":_glGetString,"dj":_glGetStringi,"Xi":_glGetUniformBlockIndex,"va":_glGetUniformLocation,"lj":_glInvalidateFramebuffer,"ub":_glLinkProgram,"la":_glPixelStorei,"bj":_glProgramBinary,"_i":_glProgramParameteri,"ia":_glReadBuffer,"cb":_glReadPixels,"fa":_glRenderbufferStorage,"Ga":_glRenderbufferStorageMultisample,"T":_glScissor,"Pa":_glShaderSource,"r":_glTexImage2D,"Ia":_glTexImage3D,"g":_glTexParameterf,"d":_glTexParameteri,"ij":_glTexStorage2D,"Ha":_glTexSubImage2D,"Qa":_glTexSubImage3D,"$i":_glTransformFeedbackVaryings,"f":_glUniform1f,"u":_glUniform1i,"db":_glUniform1iv,"xb":_glUniform1ui,"Za":_glUniform2f,"n":_glUniform2fv,"Ca":_glUniform2i,"ma":_glUniform2iv,"Ya":_glUniform3f,"V":_glUniform3fv,"Ba":_glUniform3i,"xa":_glUniform4f,"y":_glUniform4fv,"Aa":_glUniform4i,"Wi":_glUniformBlockBinding,"sb":_glUniformMatrix2fv,"rb":_glUniformMatrix3fv,"o":_glUniformMatrix4fv,"pa":_glUseProgram,"z":_glVertexAttrib4f,"S":_glVertexAttrib4fv,"G":_glVertexAttribDivisor,"pj":_glVertexAttribI4ui,"La":_glVertexAttribIPointer,"h":_glVertexAttribPointer,"t":_glViewport,"di":_godot_audio_capture_start,"cg":_godot_audio_capture_stop,"be":_godot_audio_has_script_processor,"dc":_godot_audio_has_worklet,"bk":_godot_audio_init,"ck":_godot_audio_is_available,"kj":_godot_audio_resume,"yc":_godot_audio_script_create,"nc":_godot_audio_script_start,"Ub":_godot_audio_worklet_create,"ak":_godot_audio_worklet_start_no_threads,"Sb":_godot_js_config_canvas_id_get,"dh":_godot_js_config_locale_get,"_b":_godot_js_display_alert,"me":_godot_js_display_canvas_focus,"xe":_godot_js_display_canvas_is_focused,"ld":_godot_js_display_clipboard_get,"vd":_godot_js_display_clipboard_set,"Te":_godot_js_display_cursor_is_hidden,"Ie":_godot_js_display_cursor_is_locked,"Wa":_godot_js_display_cursor_lock_set,"ob":_godot_js_display_cursor_set_custom_shape,"Hf":_godot_js_display_cursor_set_shape,"Xa":_godot_js_display_cursor_set_visible,"yg":_godot_js_display_desired_size_set,"oc":_godot_js_display_fullscreen_cb,"Sf":_godot_js_display_fullscreen_exit,"bg":_godot_js_display_fullscreen_request,"Rj":_godot_js_display_glGetBufferSubData,"ib":_godot_js_display_has_webgl,"Yc":_godot_js_display_is_swap_ok_cancel,"lc":_godot_js_display_notification_cb,"cc":_godot_js_display_pixel_ratio_get,"ec":_godot_js_display_screen_dpi_get,"Jg":_godot_js_display_screen_size_get,"gd":_godot_js_display_setup_canvas,"Ug":_godot_js_display_size_update,"ae":_godot_js_display_touchscreen_is_available,"jc":_godot_js_display_vk_available,"kc":_godot_js_display_vk_cb,"hc":_godot_js_display_vk_hide,"ic":_godot_js_display_vk_show,"mc":_godot_js_display_window_blur_cb,"Yb":_godot_js_display_window_icon_set,"ng":_godot_js_display_window_size_get,"Zb":_godot_js_display_window_title_set,"zi":_godot_js_eval,"qj":_godot_js_fetch_body_length_get,"Aj":_godot_js_fetch_create,"Jb":_godot_js_fetch_free,"nj":_godot_js_fetch_http_status_get,"rj":_godot_js_fetch_is_chunked,"oj":_godot_js_fetch_read_chunk,"mj":_godot_js_fetch_read_headers,"eb":_godot_js_fetch_state_get,"pc":_godot_js_input_drop_files_cb,"rc":_godot_js_input_gamepad_cb,"fc":_godot_js_input_gamepad_sample,"Rd":_godot_js_input_gamepad_sample_count,"Gd":_godot_js_input_gamepad_sample_get,"sc":_godot_js_input_key_cb,"wc":_godot_js_input_mouse_button_cb,"vc":_godot_js_input_mouse_move_cb,"uc":_godot_js_input_mouse_wheel_cb,"qc":_godot_js_input_paste_cb,"tc":_godot_js_input_touch_cb,"Wb":_godot_js_input_vibrate_handheld,"oi":_godot_js_os_download_buffer,"ac":_godot_js_os_execute,"oh":_godot_js_os_finish_async,"Rb":_godot_js_os_fs_is_persistent,"gc":_godot_js_os_fs_sync,"$b":_godot_js_os_hw_concurrency_get,"Tb":_godot_js_os_request_quit_cb,"Xb":_godot_js_os_shell_open,"Qb":_godot_js_pwa_cb,"Vb":_godot_js_pwa_update,"Ob":_godot_js_rtc_datachannel_close,"Vj":_godot_js_rtc_datachannel_connect,"Sj":_godot_js_rtc_datachannel_destroy,"Wj":_godot_js_rtc_datachannel_get_buffered_amount,"_j":_godot_js_rtc_datachannel_id_get,"Xj":_godot_js_rtc_datachannel_is_negotiated,"$j":_godot_js_rtc_datachannel_is_ordered,"Uj":_godot_js_rtc_datachannel_label_get,"Zj":_godot_js_rtc_datachannel_max_packet_lifetime_get,"Yj":_godot_js_rtc_datachannel_max_retransmits_get,"Tj":_godot_js_rtc_datachannel_protocol_get,"Nb":_godot_js_rtc_datachannel_ready_state_get,"Mb":_godot_js_rtc_datachannel_send,"Qj":_godot_js_rtc_pc_close,"Lj":_godot_js_rtc_pc_create,"Kj":_godot_js_rtc_pc_datachannel_create,"Lb":_godot_js_rtc_pc_destroy,"Mj":_godot_js_rtc_pc_ice_candidate_add,"Oj":_godot_js_rtc_pc_local_description_set,"Pj":_godot_js_rtc_pc_offer_create,"Nj":_godot_js_rtc_pc_remote_description_set,"Kb":_godot_js_websocket_buffered_amount,"Ij":_godot_js_websocket_close,"Hj":_godot_js_websocket_create,"Ib":_godot_js_websocket_destroy,"Jj":_godot_js_websocket_send,"Yi":_godot_js_wrapper_create_cb,"Ki":_godot_js_wrapper_create_object,"Ui":_godot_js_wrapper_interface_get,"aj":_godot_js_wrapper_object_call,"hj":_godot_js_wrapper_object_get,"yb":_godot_js_wrapper_object_getvar,"jj":_godot_js_wrapper_object_set,"cj":_godot_js_wrapper_object_setvar,"ci":_godot_js_wrapper_object_unref,"vj":_godot_webxr_commit_for_eye,"Ej":_godot_webxr_get_bounds_geometry,"Fb":_godot_webxr_get_controller_axes,"sj":_godot_webxr_get_controller_buttons,"uj":_godot_webxr_get_controller_count,"Ra":_godot_webxr_get_controller_target_ray_mode,"tj":_godot_webxr_get_controller_transform,"wj":_godot_webxr_get_projection_for_eye,"yj":_godot_webxr_get_render_targetsize,"xj":_godot_webxr_get_transform_for_eye,"Dj":_godot_webxr_get_view_count,"Fj":_godot_webxr_get_visibility_state,"Bj":_godot_webxr_initialize,"Gb":_godot_webxr_is_controller_connected,"Gj":_godot_webxr_is_session_supported,"Cj":_godot_webxr_is_supported,"Hb":_godot_webxr_sample_controller_data,"zj":_godot_webxr_uninitialize,"za":invoke_ii,"na":invoke_iii,"gb":invoke_iiii,"hb":invoke_iiiii,"Dc":invoke_iiiiii,"Bc":invoke_iiiiiii,"zc":invoke_iij,"ca":invoke_vi,"oa":invoke_vii,"ta":invoke_viii,"sa":invoke_viiii,"Ma":invoke_viiiiiii,"l":_setTempRet0,"Eb":_strftime,"Nc":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ek"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["fk"]).apply(null,arguments)};var __Z13godot_js_mainiPPc=Module["__Z13godot_js_mainiPPc"]=function(){return(__Z13godot_js_mainiPPc=Module["__Z13godot_js_mainiPPc"]=Module["asm"]["gk"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["hk"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ik"]).apply(null,arguments)};var _htonl=Module["_htonl"]=function(){return(_htonl=Module["_htonl"]=Module["asm"]["jk"]).apply(null,arguments)};var _htons=Module["_htons"]=function(){return(_htons=Module["_htons"]=Module["asm"]["kk"]).apply(null,arguments)};var _ntohs=Module["_ntohs"]=function(){return(_ntohs=Module["_ntohs"]=Module["asm"]["lk"]).apply(null,arguments)};var _fflush=Module["_fflush"]=function(){return(_fflush=Module["_fflush"]=Module["asm"]["mk"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["nk"]).apply(null,arguments)};var __emwebxr_on_input_event=Module["__emwebxr_on_input_event"]=function(){return(__emwebxr_on_input_event=Module["__emwebxr_on_input_event"]=Module["asm"]["ok"]).apply(null,arguments)};var __emwebxr_on_simple_event=Module["__emwebxr_on_simple_event"]=function(){return(__emwebxr_on_simple_event=Module["__emwebxr_on_simple_event"]=Module["asm"]["pk"]).apply(null,arguments)};var ___funcs_on_exit=Module["___funcs_on_exit"]=function(){return(___funcs_on_exit=Module["___funcs_on_exit"]=Module["asm"]["qk"]).apply(null,arguments)};var _setThrew=Module["_setThrew"]=function(){return(_setThrew=Module["_setThrew"]=Module["asm"]["sk"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["tk"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["uk"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["vk"]).apply(null,arguments)};var dynCall_iij=Module["dynCall_iij"]=function(){return(dynCall_iij=Module["dynCall_iij"]=Module["asm"]["wk"]).apply(null,arguments)};function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiii(index,a1,a2,a3,a4){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiii(index,a1,a2,a3,a4,a5){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iij(index,a1,a2,a3){var sp=stackSave();try{return dynCall_iij(index,a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module["cwrap"]=cwrap;Module["callMain"]=callMain;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];args=args||[];args.unshift(thisProgram);var argc=args.length;var argv=stackAlloc((argc+1)*4);var argv_ptr=argv>>2;args.forEach(arg=>{HEAP32[argv_ptr++]=allocateUTF8OnStack(arg)});HEAP32[argv_ptr]=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(!keepRuntimeAlive()){exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=false;if(Module["noInitialRun"])shouldRunNow=false;run(); | ||
| 10 | |||
| 11 | |||
| 12 | return Godot.ready | ||
| 13 | } | ||
| 14 | ); | ||
| 15 | })(); | ||
| 16 | if (typeof exports === 'object' && typeof module === 'object') | ||
| 17 | module.exports = Godot; | ||
| 18 | else if (typeof define === 'function' && define['amd']) | ||
| 19 | define([], function() { return Godot; }); | ||
| 20 | else if (typeof exports === 'object') | ||
| 21 | exports["Godot"] = Godot; | ||
| 22 | |||
| 23 | const Preloader = /** @constructor */ function () { // eslint-disable-line no-unused-vars | ||
| 24 | function getTrackedResponse(response, load_status) { | ||
| 25 | function onloadprogress(reader, controller) { | ||
| 26 | return reader.read().then(function (result) { | ||
| 27 | if (load_status.done) { | ||
| 28 | return Promise.resolve(); | ||
| 29 | } | ||
| 30 | if (result.value) { | ||
| 31 | controller.enqueue(result.value); | ||
| 32 | load_status.loaded += result.value.length; | ||
| 33 | } | ||
| 34 | if (!result.done) { | ||
| 35 | return onloadprogress(reader, controller); | ||
| 36 | } | ||
| 37 | load_status.done = true; | ||
| 38 | return Promise.resolve(); | ||
| 39 | }); | ||
| 40 | } | ||
| 41 | const reader = response.body.getReader(); | ||
| 42 | return new Response(new ReadableStream({ | ||
| 43 | start: function (controller) { | ||
| 44 | onloadprogress(reader, controller).then(function () { | ||
| 45 | controller.close(); | ||
| 46 | }); | ||
| 47 | }, | ||
| 48 | }), { headers: response.headers }); | ||
| 49 | } | ||
| 50 | |||
| 51 | function loadFetch(file, tracker, fileSize, raw) { | ||
| 52 | tracker[file] = { | ||
| 53 | total: fileSize || 0, | ||
| 54 | loaded: 0, | ||
| 55 | done: false, | ||
| 56 | }; | ||
| 57 | return fetch(file).then(function (response) { | ||
| 58 | if (!response.ok) { | ||
| 59 | return Promise.reject(new Error(`Failed loading file '${file}'`)); | ||
| 60 | } | ||
| 61 | const tr = getTrackedResponse(response, tracker[file]); | ||
| 62 | if (raw) { | ||
| 63 | return Promise.resolve(tr); | ||
| 64 | } | ||
| 65 | return tr.arrayBuffer(); | ||
| 66 | }); | ||
| 67 | } | ||
| 68 | |||
| 69 | function retry(func, attempts = 1) { | ||
| 70 | function onerror(err) { | ||
| 71 | if (attempts <= 1) { | ||
| 72 | return Promise.reject(err); | ||
| 73 | } | ||
| 74 | return new Promise(function (resolve, reject) { | ||
| 75 | setTimeout(function () { | ||
| 76 | retry(func, attempts - 1).then(resolve).catch(reject); | ||
| 77 | }, 1000); | ||
| 78 | }); | ||
| 79 | } | ||
| 80 | return func().catch(onerror); | ||
| 81 | } | ||
| 82 | |||
| 83 | const DOWNLOAD_ATTEMPTS_MAX = 4; | ||
| 84 | const loadingFiles = {}; | ||
| 85 | const lastProgress = { loaded: 0, total: 0 }; | ||
| 86 | let progressFunc = null; | ||
| 87 | |||
| 88 | const animateProgress = function () { | ||
| 89 | let loaded = 0; | ||
| 90 | let total = 0; | ||
| 91 | let totalIsValid = true; | ||
| 92 | let progressIsFinal = true; | ||
| 93 | |||
| 94 | Object.keys(loadingFiles).forEach(function (file) { | ||
| 95 | const stat = loadingFiles[file]; | ||
| 96 | if (!stat.done) { | ||
| 97 | progressIsFinal = false; | ||
| 98 | } | ||
| 99 | if (!totalIsValid || stat.total === 0) { | ||
| 100 | totalIsValid = false; | ||
| 101 | total = 0; | ||
| 102 | } else { | ||
| 103 | total += stat.total; | ||
| 104 | } | ||
| 105 | loaded += stat.loaded; | ||
| 106 | }); | ||
| 107 | if (loaded !== lastProgress.loaded || total !== lastProgress.total) { | ||
| 108 | lastProgress.loaded = loaded; | ||
| 109 | lastProgress.total = total; | ||
| 110 | if (typeof progressFunc === 'function') { | ||
| 111 | progressFunc(loaded, total); | ||
| 112 | } | ||
| 113 | } | ||
| 114 | if (!progressIsFinal) { | ||
| 115 | requestAnimationFrame(animateProgress); | ||
| 116 | } | ||
| 117 | }; | ||
| 118 | |||
| 119 | this.animateProgress = animateProgress; | ||
| 120 | |||
| 121 | this.setProgressFunc = function (callback) { | ||
| 122 | progressFunc = callback; | ||
| 123 | }; | ||
| 124 | |||
| 125 | this.loadPromise = function (file, fileSize, raw = false) { | ||
| 126 | return retry(loadFetch.bind(null, file, loadingFiles, fileSize, raw), DOWNLOAD_ATTEMPTS_MAX); | ||
| 127 | }; | ||
| 128 | |||
| 129 | this.preloadedFiles = []; | ||
| 130 | this.preload = function (pathOrBuffer, destPath, fileSize) { | ||
| 131 | let buffer = null; | ||
| 132 | if (typeof pathOrBuffer === 'string') { | ||
| 133 | const me = this; | ||
| 134 | return this.loadPromise(pathOrBuffer, fileSize).then(function (buf) { | ||
| 135 | me.preloadedFiles.push({ | ||
| 136 | path: destPath || pathOrBuffer, | ||
| 137 | buffer: buf, | ||
| 138 | }); | ||
| 139 | return Promise.resolve(); | ||
| 140 | }); | ||
| 141 | } else if (pathOrBuffer instanceof ArrayBuffer) { | ||
| 142 | buffer = new Uint8Array(pathOrBuffer); | ||
| 143 | } else if (ArrayBuffer.isView(pathOrBuffer)) { | ||
| 144 | buffer = new Uint8Array(pathOrBuffer.buffer); | ||
| 145 | } | ||
| 146 | if (buffer) { | ||
| 147 | this.preloadedFiles.push({ | ||
| 148 | path: destPath, | ||
| 149 | buffer: pathOrBuffer, | ||
| 150 | }); | ||
| 151 | return Promise.resolve(); | ||
| 152 | } | ||
| 153 | return Promise.reject(new Error('Invalid object for preloading')); | ||
| 154 | }; | ||
| 155 | }; | ||
| 156 | |||
| 157 | /** | ||
| 158 | * An object used to configure the Engine instance based on godot export options, and to override those in custom HTML | ||
| 159 | * templates if needed. | ||
| 160 | * | ||
| 161 | * @header Engine configuration | ||
| 162 | * @summary The Engine configuration object. This is just a typedef, create it like a regular object, e.g.: | ||
| 163 | * | ||
| 164 | * ``const MyConfig = { executable: 'godot', unloadAfterInit: false }`` | ||
| 165 | * | ||
| 166 | * @typedef {Object} EngineConfig | ||
| 167 | */ | ||
| 168 | const EngineConfig = {}; // eslint-disable-line no-unused-vars | ||
| 169 | |||
| 170 | /** | ||
| 171 | * @struct | ||
| 172 | * @constructor | ||
| 173 | * @ignore | ||
| 174 | */ | ||
| 175 | const InternalConfig = function (initConfig) { // eslint-disable-line no-unused-vars | ||
| 176 | const cfg = /** @lends {InternalConfig.prototype} */ { | ||
| 177 | /** | ||
| 178 | * Whether the unload the engine automatically after the instance is initialized. | ||
| 179 | * | ||
| 180 | * @memberof EngineConfig | ||
| 181 | * @default | ||
| 182 | * @type {boolean} | ||
| 183 | */ | ||
| 184 | unloadAfterInit: true, | ||
| 185 | /** | ||
| 186 | * The HTML DOM Canvas object to use. | ||
| 187 | * | ||
| 188 | * By default, the first canvas element in the document will be used is none is specified. | ||
| 189 | * | ||
| 190 | * @memberof EngineConfig | ||
| 191 | * @default | ||
| 192 | * @type {?HTMLCanvasElement} | ||
| 193 | */ | ||
| 194 | canvas: null, | ||
| 195 | /** | ||
| 196 | * The name of the WASM file without the extension. (Set by Godot Editor export process). | ||
| 197 | * | ||
| 198 | * @memberof EngineConfig | ||
| 199 | * @default | ||
| 200 | * @type {string} | ||
| 201 | */ | ||
| 202 | executable: '', | ||
| 203 | /** | ||
| 204 | * An alternative name for the game pck to load. The executable name is used otherwise. | ||
| 205 | * | ||
| 206 | * @memberof EngineConfig | ||
| 207 | * @default | ||
| 208 | * @type {?string} | ||
| 209 | */ | ||
| 210 | mainPack: null, | ||
| 211 | /** | ||
| 212 | * Specify a language code to select the proper localization for the game. | ||
| 213 | * | ||
| 214 | * The browser locale will be used if none is specified. See complete list of | ||
| 215 | * :ref:`supported locales <doc_locales>`. | ||
| 216 | * | ||
| 217 | * @memberof EngineConfig | ||
| 218 | * @type {?string} | ||
| 219 | * @default | ||
| 220 | */ | ||
| 221 | locale: null, | ||
| 222 | /** | ||
| 223 | * The canvas resize policy determines how the canvas should be resized by Godot. | ||
| 224 | * | ||
| 225 | * ``0`` means Godot won't do any resizing. This is useful if you want to control the canvas size from | ||
| 226 | * javascript code in your template. | ||
| 227 | * | ||
| 228 | * ``1`` means Godot will resize the canvas on start, and when changing window size via engine functions. | ||
| 229 | * | ||
| 230 | * ``2`` means Godot will adapt the canvas size to match the whole browser window. | ||
| 231 | * | ||
| 232 | * @memberof EngineConfig | ||
| 233 | * @type {number} | ||
| 234 | * @default | ||
| 235 | */ | ||
| 236 | canvasResizePolicy: 2, | ||
| 237 | /** | ||
| 238 | * The arguments to be passed as command line arguments on startup. | ||
| 239 | * | ||
| 240 | * See :ref:`command line tutorial <doc_command_line_tutorial>`. | ||
| 241 | * | ||
| 242 | * **Note**: :js:meth:`startGame <Engine.prototype.startGame>` will always add the ``--main-pack`` argument. | ||
| 243 | * | ||
| 244 | * @memberof EngineConfig | ||
| 245 | * @type {Array<string>} | ||
| 246 | * @default | ||
| 247 | */ | ||
| 248 | args: [], | ||
| 249 | /** | ||
| 250 | * When enabled, the game canvas will automatically grab the focus when the engine starts. | ||
| 251 | * | ||
| 252 | * @memberof EngineConfig | ||
| 253 | * @type {boolean} | ||
| 254 | * @default | ||
| 255 | */ | ||
| 256 | focusCanvas: true, | ||
| 257 | /** | ||
| 258 | * When enabled, this will turn on experimental virtual keyboard support on mobile. | ||
| 259 | * | ||
| 260 | * @memberof EngineConfig | ||
| 261 | * @type {boolean} | ||
| 262 | * @default | ||
| 263 | */ | ||
| 264 | experimentalVK: false, | ||
| 265 | /** | ||
| 266 | * The progressive web app service worker to install. | ||
| 267 | * @memberof EngineConfig | ||
| 268 | * @default | ||
| 269 | * @type {string} | ||
| 270 | */ | ||
| 271 | serviceWorker: '', | ||
| 272 | /** | ||
| 273 | * @ignore | ||
| 274 | * @type {Array.<string>} | ||
| 275 | */ | ||
| 276 | persistentPaths: ['/userfs'], | ||
| 277 | /** | ||
| 278 | * @ignore | ||
| 279 | * @type {boolean} | ||
| 280 | */ | ||
| 281 | persistentDrops: false, | ||
| 282 | /** | ||
| 283 | * @ignore | ||
| 284 | * @type {Array.<string>} | ||
| 285 | */ | ||
| 286 | gdnativeLibs: [], | ||
| 287 | /** | ||
| 288 | * @ignore | ||
| 289 | * @type {Array.<string>} | ||
| 290 | */ | ||
| 291 | fileSizes: [], | ||
| 292 | /** | ||
| 293 | * A callback function for handling Godot's ``OS.execute`` calls. | ||
| 294 | * | ||
| 295 | * This is for example used in the Web Editor template to switch between project manager and editor, and for running the game. | ||
| 296 | * | ||
| 297 | * @callback EngineConfig.onExecute | ||
| 298 | * @param {string} path The path that Godot's wants executed. | ||
| 299 | * @param {Array.<string>} args The arguments of the "command" to execute. | ||
| 300 | */ | ||
| 301 | /** | ||
| 302 | * @ignore | ||
| 303 | * @type {?function(string, Array.<string>)} | ||
| 304 | */ | ||
| 305 | onExecute: null, | ||
| 306 | /** | ||
| 307 | * A callback function for being notified when the Godot instance quits. | ||
| 308 | * | ||
| 309 | * **Note**: This function will not be called if the engine crashes or become unresponsive. | ||
| 310 | * | ||
| 311 | * @callback EngineConfig.onExit | ||
| 312 | * @param {number} status_code The status code returned by Godot on exit. | ||
| 313 | */ | ||
| 314 | /** | ||
| 315 | * @ignore | ||
| 316 | * @type {?function(number)} | ||
| 317 | */ | ||
| 318 | onExit: null, | ||
| 319 | /** | ||
| 320 | * A callback function for displaying download progress. | ||
| 321 | * | ||
| 322 | * The function is called once per frame while downloading files, so the usage of ``requestAnimationFrame()`` | ||
| 323 | * is not necessary. | ||
| 324 | * | ||
| 325 | * If the callback function receives a total amount of bytes as 0, this means that it is impossible to calculate. | ||
| 326 | * Possible reasons include: | ||
| 327 | * | ||
| 328 | * - Files are delivered with server-side chunked compression | ||
| 329 | * - Files are delivered with server-side compression on Chromium | ||
| 330 | * - Not all file downloads have started yet (usually on servers without multi-threading) | ||
| 331 | * | ||
| 332 | * @callback EngineConfig.onProgress | ||
| 333 | * @param {number} current The current amount of downloaded bytes so far. | ||
| 334 | * @param {number} total The total amount of bytes to be downloaded. | ||
| 335 | */ | ||
| 336 | /** | ||
| 337 | * @ignore | ||
| 338 | * @type {?function(number, number)} | ||
| 339 | */ | ||
| 340 | onProgress: null, | ||
| 341 | /** | ||
| 342 | * A callback function for handling the standard output stream. This method should usually only be used in debug pages. | ||
| 343 | * | ||
| 344 | * By default, ``console.log()`` is used. | ||
| 345 | * | ||
| 346 | * @callback EngineConfig.onPrint | ||
| 347 | * @param {...*} [var_args] A variadic number of arguments to be printed. | ||
| 348 | */ | ||
| 349 | /** | ||
| 350 | * @ignore | ||
| 351 | * @type {?function(...*)} | ||
| 352 | */ | ||
| 353 | onPrint: function () { | ||
| 354 | console.log.apply(console, Array.from(arguments)); // eslint-disable-line no-console | ||
| 355 | }, | ||
| 356 | /** | ||
| 357 | * A callback function for handling the standard error stream. This method should usually only be used in debug pages. | ||
| 358 | * | ||
| 359 | * By default, ``console.error()`` is used. | ||
| 360 | * | ||
| 361 | * @callback EngineConfig.onPrintError | ||
| 362 | * @param {...*} [var_args] A variadic number of arguments to be printed as errors. | ||
| 363 | */ | ||
| 364 | /** | ||
| 365 | * @ignore | ||
| 366 | * @type {?function(...*)} | ||
| 367 | */ | ||
| 368 | onPrintError: function (var_args) { | ||
| 369 | console.error.apply(console, Array.from(arguments)); // eslint-disable-line no-console | ||
| 370 | }, | ||
| 371 | }; | ||
| 372 | |||
| 373 | /** | ||
| 374 | * @ignore | ||
| 375 | * @struct | ||
| 376 | * @constructor | ||
| 377 | * @param {EngineConfig} opts | ||
| 378 | */ | ||
| 379 | function Config(opts) { | ||
| 380 | this.update(opts); | ||
| 381 | } | ||
| 382 | |||
| 383 | Config.prototype = cfg; | ||
| 384 | |||
| 385 | /** | ||
| 386 | * @ignore | ||
| 387 | * @param {EngineConfig} opts | ||
| 388 | */ | ||
| 389 | Config.prototype.update = function (opts) { | ||
| 390 | const config = opts || {}; | ||
| 391 | // NOTE: We must explicitly pass the default, accessing it via | ||
| 392 | // the key will fail due to closure compiler renames. | ||
| 393 | function parse(key, def) { | ||
| 394 | if (typeof (config[key]) === 'undefined') { | ||
| 395 | return def; | ||
| 396 | } | ||
| 397 | return config[key]; | ||
| 398 | } | ||
| 399 | // Module config | ||
| 400 | this.unloadAfterInit = parse('unloadAfterInit', this.unloadAfterInit); | ||
| 401 | this.onPrintError = parse('onPrintError', this.onPrintError); | ||
| 402 | this.onPrint = parse('onPrint', this.onPrint); | ||
| 403 | this.onProgress = parse('onProgress', this.onProgress); | ||
| 404 | |||
| 405 | // Godot config | ||
| 406 | this.canvas = parse('canvas', this.canvas); | ||
| 407 | this.executable = parse('executable', this.executable); | ||
| 408 | this.mainPack = parse('mainPack', this.mainPack); | ||
| 409 | this.locale = parse('locale', this.locale); | ||
| 410 | this.canvasResizePolicy = parse('canvasResizePolicy', this.canvasResizePolicy); | ||
| 411 | this.persistentPaths = parse('persistentPaths', this.persistentPaths); | ||
| 412 | this.persistentDrops = parse('persistentDrops', this.persistentDrops); | ||
| 413 | this.experimentalVK = parse('experimentalVK', this.experimentalVK); | ||
| 414 | this.focusCanvas = parse('focusCanvas', this.focusCanvas); | ||
| 415 | this.serviceWorker = parse('serviceWorker', this.serviceWorker); | ||
| 416 | this.gdnativeLibs = parse('gdnativeLibs', this.gdnativeLibs); | ||
| 417 | this.fileSizes = parse('fileSizes', this.fileSizes); | ||
| 418 | this.args = parse('args', this.args); | ||
| 419 | this.onExecute = parse('onExecute', this.onExecute); | ||
| 420 | this.onExit = parse('onExit', this.onExit); | ||
| 421 | }; | ||
| 422 | |||
| 423 | /** | ||
| 424 | * @ignore | ||
| 425 | * @param {string} loadPath | ||
| 426 | * @param {Response} response | ||
| 427 | */ | ||
| 428 | Config.prototype.getModuleConfig = function (loadPath, response) { | ||
| 429 | let r = response; | ||
| 430 | return { | ||
| 431 | 'print': this.onPrint, | ||
| 432 | 'printErr': this.onPrintError, | ||
| 433 | 'thisProgram': this.executable, | ||
| 434 | 'noExitRuntime': true, | ||
| 435 | 'dynamicLibraries': [`${loadPath}.side.wasm`], | ||
| 436 | 'instantiateWasm': function (imports, onSuccess) { | ||
| 437 | function done(result) { | ||
| 438 | onSuccess(result['instance'], result['module']); | ||
| 439 | } | ||
| 440 | if (typeof (WebAssembly.instantiateStreaming) !== 'undefined') { | ||
| 441 | WebAssembly.instantiateStreaming(Promise.resolve(r), imports).then(done); | ||
| 442 | } else { | ||
| 443 | r.arrayBuffer().then(function (buffer) { | ||
| 444 | WebAssembly.instantiate(buffer, imports).then(done); | ||
| 445 | }); | ||
| 446 | } | ||
| 447 | r = null; | ||
| 448 | return {}; | ||
| 449 | }, | ||
| 450 | 'locateFile': function (path) { | ||
| 451 | if (path.endsWith('.worker.js')) { | ||
| 452 | return `${loadPath}.worker.js`; | ||
| 453 | } else if (path.endsWith('.audio.worklet.js')) { | ||
| 454 | return `${loadPath}.audio.worklet.js`; | ||
| 455 | } else if (path.endsWith('.js')) { | ||
| 456 | return `${loadPath}.js`; | ||
| 457 | } else if (path.endsWith('.side.wasm')) { | ||
| 458 | return `${loadPath}.side.wasm`; | ||
| 459 | } else if (path.endsWith('.wasm')) { | ||
| 460 | return `${loadPath}.wasm`; | ||
| 461 | } | ||
| 462 | return path; | ||
| 463 | }, | ||
| 464 | }; | ||
| 465 | }; | ||
| 466 | |||
| 467 | /** | ||
| 468 | * @ignore | ||
| 469 | * @param {function()} cleanup | ||
| 470 | */ | ||
| 471 | Config.prototype.getGodotConfig = function (cleanup) { | ||
| 472 | // Try to find a canvas | ||
| 473 | if (!(this.canvas instanceof HTMLCanvasElement)) { | ||
| 474 | const nodes = document.getElementsByTagName('canvas'); | ||
| 475 | if (nodes.length && nodes[0] instanceof HTMLCanvasElement) { | ||
| 476 | this.canvas = nodes[0]; | ||
| 477 | } | ||
| 478 | if (!this.canvas) { | ||
| 479 | throw new Error('No canvas found in page'); | ||
| 480 | } | ||
| 481 | } | ||
| 482 | // Canvas can grab focus on click, or key events won't work. | ||
| 483 | if (this.canvas.tabIndex < 0) { | ||
| 484 | this.canvas.tabIndex = 0; | ||
| 485 | } | ||
| 486 | |||
| 487 | // Browser locale, or custom one if defined. | ||
| 488 | let locale = this.locale; | ||
| 489 | if (!locale) { | ||
| 490 | locale = navigator.languages ? navigator.languages[0] : navigator.language; | ||
| 491 | locale = locale.split('.')[0]; | ||
| 492 | } | ||
| 493 | locale = locale.replace('-', '_'); | ||
| 494 | const onExit = this.onExit; | ||
| 495 | |||
| 496 | // Godot configuration. | ||
| 497 | return { | ||
| 498 | 'canvas': this.canvas, | ||
| 499 | 'canvasResizePolicy': this.canvasResizePolicy, | ||
| 500 | 'locale': locale, | ||
| 501 | 'persistentDrops': this.persistentDrops, | ||
| 502 | 'virtualKeyboard': this.experimentalVK, | ||
| 503 | 'focusCanvas': this.focusCanvas, | ||
| 504 | 'onExecute': this.onExecute, | ||
| 505 | 'onExit': function (p_code) { | ||
| 506 | cleanup(); // We always need to call the cleanup callback to free memory. | ||
| 507 | if (typeof (onExit) === 'function') { | ||
| 508 | onExit(p_code); | ||
| 509 | } | ||
| 510 | }, | ||
| 511 | }; | ||
| 512 | }; | ||
| 513 | return new Config(initConfig); | ||
| 514 | }; | ||
| 515 | |||
| 516 | /** | ||
| 517 | * Projects exported for the Web expose the :js:class:`Engine` class to the JavaScript environment, that allows | ||
| 518 | * fine control over the engine's start-up process. | ||
| 519 | * | ||
| 520 | * This API is built in an asynchronous manner and requires basic understanding | ||
| 521 | * of `Promises <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises>`__. | ||
| 522 | * | ||
| 523 | * @module Engine | ||
| 524 | * @header HTML5 shell class reference | ||
| 525 | */ | ||
| 526 | const Engine = (function () { | ||
| 527 | const preloader = new Preloader(); | ||
| 528 | |||
| 529 | let loadPromise = null; | ||
| 530 | let loadPath = ''; | ||
| 531 | let initPromise = null; | ||
| 532 | |||
| 533 | /** | ||
| 534 | * @classdesc The ``Engine`` class provides methods for loading and starting exported projects on the Web. For default export | ||
| 535 | * settings, this is already part of the exported HTML page. To understand practical use of the ``Engine`` class, | ||
| 536 | * see :ref:`Custom HTML page for Web export <doc_customizing_html5_shell>`. | ||
| 537 | * | ||
| 538 | * @description Create a new Engine instance with the given configuration. | ||
| 539 | * | ||
| 540 | * @global | ||
| 541 | * @constructor | ||
| 542 | * @param {EngineConfig} initConfig The initial config for this instance. | ||
| 543 | */ | ||
| 544 | function Engine(initConfig) { // eslint-disable-line no-shadow | ||
| 545 | this.config = new InternalConfig(initConfig); | ||
| 546 | this.rtenv = null; | ||
| 547 | } | ||
| 548 | |||
| 549 | /** | ||
| 550 | * Load the engine from the specified base path. | ||
| 551 | * | ||
| 552 | * @param {string} basePath Base path of the engine to load. | ||
| 553 | * @param {number=} [size=0] The file size if known. | ||
| 554 | * @returns {Promise} A Promise that resolves once the engine is loaded. | ||
| 555 | * | ||
| 556 | * @function Engine.load | ||
| 557 | */ | ||
| 558 | Engine.load = function (basePath, size) { | ||
| 559 | if (loadPromise == null) { | ||
| 560 | loadPath = basePath; | ||
| 561 | loadPromise = preloader.loadPromise(`${loadPath}.wasm`, size, true); | ||
| 562 | requestAnimationFrame(preloader.animateProgress); | ||
| 563 | } | ||
| 564 | return loadPromise; | ||
| 565 | }; | ||
| 566 | |||
| 567 | /** | ||
| 568 | * Unload the engine to free memory. | ||
| 569 | * | ||
| 570 | * This method will be called automatically depending on the configuration. See :js:attr:`unloadAfterInit`. | ||
| 571 | * | ||
| 572 | * @function Engine.unload | ||
| 573 | */ | ||
| 574 | Engine.unload = function () { | ||
| 575 | loadPromise = null; | ||
| 576 | }; | ||
| 577 | |||
| 578 | /** | ||
| 579 | * Check whether WebGL is available. Optionally, specify a particular version of WebGL to check for. | ||
| 580 | * | ||
| 581 | * @param {number=} [majorVersion=1] The major WebGL version to check for. | ||
| 582 | * @returns {boolean} If the given major version of WebGL is available. | ||
| 583 | * @function Engine.isWebGLAvailable | ||
| 584 | */ | ||
| 585 | Engine.isWebGLAvailable = function (majorVersion = 1) { | ||
| 586 | try { | ||
| 587 | return !!document.createElement('canvas').getContext(['webgl', 'webgl2'][majorVersion - 1]); | ||
| 588 | } catch (e) { /* Not available */ } | ||
| 589 | return false; | ||
| 590 | }; | ||
| 591 | |||
| 592 | /** | ||
| 593 | * Safe Engine constructor, creates a new prototype for every new instance to avoid prototype pollution. | ||
| 594 | * @ignore | ||
| 595 | * @constructor | ||
| 596 | */ | ||
| 597 | function SafeEngine(initConfig) { | ||
| 598 | const proto = /** @lends Engine.prototype */ { | ||
| 599 | /** | ||
| 600 | * Initialize the engine instance. Optionally, pass the base path to the engine to load it, | ||
| 601 | * if it hasn't been loaded yet. See :js:meth:`Engine.load`. | ||
| 602 | * | ||
| 603 | * @param {string=} basePath Base path of the engine to load. | ||
| 604 | * @return {Promise} A ``Promise`` that resolves once the engine is loaded and initialized. | ||
| 605 | */ | ||
| 606 | init: function (basePath) { | ||
| 607 | if (initPromise) { | ||
| 608 | return initPromise; | ||
| 609 | } | ||
| 610 | if (loadPromise == null) { | ||
| 611 | if (!basePath) { | ||
| 612 | initPromise = Promise.reject(new Error('A base path must be provided when calling `init` and the engine is not loaded.')); | ||
| 613 | return initPromise; | ||
| 614 | } | ||
| 615 | Engine.load(basePath, this.config.fileSizes[`${basePath}.wasm`]); | ||
| 616 | } | ||
| 617 | const me = this; | ||
| 618 | function doInit(promise) { | ||
| 619 | // Care! Promise chaining is bogus with old emscripten versions. | ||
| 620 | // This caused a regression with the Mono build (which uses an older emscripten version). | ||
| 621 | // Make sure to test that when refactoring. | ||
| 622 | return new Promise(function (resolve, reject) { | ||
| 623 | promise.then(function (response) { | ||
| 624 | const cloned = new Response(response.clone().body, { 'headers': [['content-type', 'application/wasm']] }); | ||
| 625 | Godot(me.config.getModuleConfig(loadPath, cloned)).then(function (module) { | ||
| 626 | const paths = me.config.persistentPaths; | ||
| 627 | module['initFS'](paths).then(function (err) { | ||
| 628 | me.rtenv = module; | ||
| 629 | if (me.config.unloadAfterInit) { | ||
| 630 | Engine.unload(); | ||
| 631 | } | ||
| 632 | resolve(); | ||
| 633 | }); | ||
| 634 | }); | ||
| 635 | }); | ||
| 636 | }); | ||
| 637 | } | ||
| 638 | preloader.setProgressFunc(this.config.onProgress); | ||
| 639 | initPromise = doInit(loadPromise); | ||
| 640 | return initPromise; | ||
| 641 | }, | ||
| 642 | |||
| 643 | /** | ||
| 644 | * Load a file so it is available in the instance's file system once it runs. Must be called **before** starting the | ||
| 645 | * instance. | ||
| 646 | * | ||
| 647 | * If not provided, the ``path`` is derived from the URL of the loaded file. | ||
| 648 | * | ||
| 649 | * @param {string|ArrayBuffer} file The file to preload. | ||
| 650 | * | ||
| 651 | * If a ``string`` the file will be loaded from that path. | ||
| 652 | * | ||
| 653 | * If an ``ArrayBuffer`` or a view on one, the buffer will used as the content of the file. | ||
| 654 | * | ||
| 655 | * @param {string=} path Path by which the file will be accessible. Required, if ``file`` is not a string. | ||
| 656 | * | ||
| 657 | * @returns {Promise} A Promise that resolves once the file is loaded. | ||
| 658 | */ | ||
| 659 | preloadFile: function (file, path) { | ||
| 660 | return preloader.preload(file, path, this.config.fileSizes[file]); | ||
| 661 | }, | ||
| 662 | |||
| 663 | /** | ||
| 664 | * Start the engine instance using the given override configuration (if any). | ||
| 665 | * :js:meth:`startGame <Engine.prototype.startGame>` can be used in typical cases instead. | ||
| 666 | * | ||
| 667 | * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init <Engine.prototype.init>`. | ||
| 668 | * The engine must be loaded beforehand. | ||
| 669 | * | ||
| 670 | * Fails if a canvas cannot be found on the page, or not specified in the configuration. | ||
| 671 | * | ||
| 672 | * @param {EngineConfig} override An optional configuration override. | ||
| 673 | * @return {Promise} Promise that resolves once the engine started. | ||
| 674 | */ | ||
| 675 | start: function (override) { | ||
| 676 | this.config.update(override); | ||
| 677 | const me = this; | ||
| 678 | return me.init().then(function () { | ||
| 679 | if (!me.rtenv) { | ||
| 680 | return Promise.reject(new Error('The engine must be initialized before it can be started')); | ||
| 681 | } | ||
| 682 | |||
| 683 | let config = {}; | ||
| 684 | try { | ||
| 685 | config = me.config.getGodotConfig(function () { | ||
| 686 | me.rtenv = null; | ||
| 687 | }); | ||
| 688 | } catch (e) { | ||
| 689 | return Promise.reject(e); | ||
| 690 | } | ||
| 691 | // Godot configuration. | ||
| 692 | me.rtenv['initConfig'](config); | ||
| 693 | |||
| 694 | // Preload GDNative libraries. | ||
| 695 | const libs = []; | ||
| 696 | me.config.gdnativeLibs.forEach(function (lib) { | ||
| 697 | libs.push(me.rtenv['loadDynamicLibrary'](lib, { 'loadAsync': true })); | ||
| 698 | }); | ||
| 699 | return Promise.all(libs).then(function () { | ||
| 700 | return new Promise(function (resolve, reject) { | ||
| 701 | preloader.preloadedFiles.forEach(function (file) { | ||
| 702 | me.rtenv['copyToFS'](file.path, file.buffer); | ||
| 703 | }); | ||
| 704 | preloader.preloadedFiles.length = 0; // Clear memory | ||
| 705 | me.rtenv['callMain'](me.config.args); | ||
| 706 | initPromise = null; | ||
| 707 | if (me.config.serviceWorker && 'serviceWorker' in navigator) { | ||
| 708 | navigator.serviceWorker.register(me.config.serviceWorker); | ||
| 709 | } | ||
| 710 | resolve(); | ||
| 711 | }); | ||
| 712 | }); | ||
| 713 | }); | ||
| 714 | }, | ||
| 715 | |||
| 716 | /** | ||
| 717 | * Start the game instance using the given configuration override (if any). | ||
| 718 | * | ||
| 719 | * This will initialize the instance if it is not initialized. For manual initialization, see :js:meth:`init <Engine.prototype.init>`. | ||
| 720 | * | ||
| 721 | * This will load the engine if it is not loaded, and preload the main pck. | ||
| 722 | * | ||
| 723 | * This method expects the initial config (or the override) to have both the :js:attr:`executable` and :js:attr:`mainPack` | ||
| 724 | * properties set (normally done by the editor during export). | ||
| 725 | * | ||
| 726 | * @param {EngineConfig} override An optional configuration override. | ||
| 727 | * @return {Promise} Promise that resolves once the game started. | ||
| 728 | */ | ||
| 729 | startGame: function (override) { | ||
| 730 | this.config.update(override); | ||
| 731 | // Add main-pack argument. | ||
| 732 | const exe = this.config.executable; | ||
| 733 | const pack = this.config.mainPack || `${exe}.pck`; | ||
| 734 | this.config.args = ['--main-pack', pack].concat(this.config.args); | ||
| 735 | // Start and init with execName as loadPath if not inited. | ||
| 736 | const me = this; | ||
| 737 | return Promise.all([ | ||
| 738 | this.init(exe), | ||
| 739 | this.preloadFile(pack, pack), | ||
| 740 | ]).then(function () { | ||
| 741 | return me.start.apply(me); | ||
| 742 | }); | ||
| 743 | }, | ||
| 744 | |||
| 745 | /** | ||
| 746 | * Create a file at the specified ``path`` with the passed as ``buffer`` in the instance's file system. | ||
| 747 | * | ||
| 748 | * @param {string} path The location where the file will be created. | ||
| 749 | * @param {ArrayBuffer} buffer The content of the file. | ||
| 750 | */ | ||
| 751 | copyToFS: function (path, buffer) { | ||
| 752 | if (this.rtenv == null) { | ||
| 753 | throw new Error('Engine must be inited before copying files'); | ||
| 754 | } | ||
| 755 | this.rtenv['copyToFS'](path, buffer); | ||
| 756 | }, | ||
| 757 | |||
| 758 | /** | ||
| 759 | * Request that the current instance quit. | ||
| 760 | * | ||
| 761 | * This is akin the user pressing the close button in the window manager, and will | ||
| 762 | * have no effect if the engine has crashed, or is stuck in a loop. | ||
| 763 | * | ||
| 764 | */ | ||
| 765 | requestQuit: function () { | ||
| 766 | if (this.rtenv) { | ||
| 767 | this.rtenv['request_quit'](); | ||
| 768 | } | ||
| 769 | }, | ||
| 770 | }; | ||
| 771 | |||
| 772 | Engine.prototype = proto; | ||
| 773 | // Closure compiler exported instance methods. | ||
| 774 | Engine.prototype['init'] = Engine.prototype.init; | ||
| 775 | Engine.prototype['preloadFile'] = Engine.prototype.preloadFile; | ||
| 776 | Engine.prototype['start'] = Engine.prototype.start; | ||
| 777 | Engine.prototype['startGame'] = Engine.prototype.startGame; | ||
| 778 | Engine.prototype['copyToFS'] = Engine.prototype.copyToFS; | ||
| 779 | Engine.prototype['requestQuit'] = Engine.prototype.requestQuit; | ||
| 780 | // Also expose static methods as instance methods | ||
| 781 | Engine.prototype['load'] = Engine.load; | ||
| 782 | Engine.prototype['unload'] = Engine.unload; | ||
| 783 | Engine.prototype['isWebGLAvailable'] = Engine.isWebGLAvailable; | ||
| 784 | return new Engine(initConfig); | ||
| 785 | } | ||
| 786 | |||
| 787 | // Closure compiler exported static methods. | ||
| 788 | SafeEngine['load'] = Engine.load; | ||
| 789 | SafeEngine['unload'] = Engine.unload; | ||
| 790 | SafeEngine['isWebGLAvailable'] = Engine.isWebGLAvailable; | ||
| 791 | |||
| 792 | return SafeEngine; | ||
| 793 | }()); | ||
| 794 | if (typeof window !== 'undefined') { | ||
| 795 | window['Engine'] = Engine; | ||
| 796 | } | ||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.pck b/static/assets/posts/godot-dynamic-tile-loading/example1/index.pck new file mode 100644 index 0000000..07ac55c --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.pck | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.png b/static/assets/posts/godot-dynamic-tile-loading/example1/index.png new file mode 100644 index 0000000..766b0b6 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/example1/index.wasm b/static/assets/posts/godot-dynamic-tile-loading/example1/index.wasm new file mode 100644 index 0000000..5151d56 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/example1/index.wasm | |||
| Binary files differ | |||
diff --git a/static/assets/posts/godot-dynamic-tile-loading/village-creator.png b/static/assets/posts/godot-dynamic-tile-loading/village-creator.png new file mode 100644 index 0000000..bb5b468 --- /dev/null +++ b/static/assets/posts/godot-dynamic-tile-loading/village-creator.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/helix-editor/editor.png b/static/assets/posts/helix-editor/editor.png new file mode 100755 index 0000000..2648364 --- /dev/null +++ b/static/assets/posts/helix-editor/editor.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/iot-app-output.png b/static/assets/posts/iot-application/iot-app-output.png new file mode 100755 index 0000000..1c80589 --- /dev/null +++ b/static/assets/posts/iot-application/iot-app-output.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/iot-rest-example.png b/static/assets/posts/iot-application/iot-rest-example.png new file mode 100755 index 0000000..3ed86aa --- /dev/null +++ b/static/assets/posts/iot-application/iot-rest-example.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/iot-sqlite-db.png b/static/assets/posts/iot-application/iot-sqlite-db.png new file mode 100755 index 0000000..82e1e29 --- /dev/null +++ b/static/assets/posts/iot-application/iot-sqlite-db.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/kcachegrind.png b/static/assets/posts/iot-application/kcachegrind.png new file mode 100755 index 0000000..0dc48ab --- /dev/null +++ b/static/assets/posts/iot-application/kcachegrind.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/profiling-viewer.png b/static/assets/posts/iot-application/profiling-viewer.png new file mode 100755 index 0000000..a450513 --- /dev/null +++ b/static/assets/posts/iot-application/profiling-viewer.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/simple-iot-application-overview.svg b/static/assets/posts/iot-application/simple-iot-application-overview.svg new file mode 100755 index 0000000..817666d --- /dev/null +++ b/static/assets/posts/iot-application/simple-iot-application-overview.svg | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
| 2 | <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="623px" height="482px" version="1.1" content="<mxfile userAgent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.90 Safari/537.36" version="7.1.3" editor="www.draw.io" type="google"><diagram id="d1a10cf0-d877-4170-d86f-ec45460d7050" name="Page-1">7Vnbbts4EP0aPzYQdbP9mKTNFtjtokgWSPpIi7RNrCRqKfq2X79DiZREUU5sV267RREgoI6o4XDmkHNIT4L7bP+bwMX6Eyc0nfge2U+C9xPfn8Yz+K+AQw1Ecw2sBCM1hFrgif1LNehpdMMILa2OkvNUssIGE57nNJEWhoXgO7vbkqf2qAVeUQd4SnDqos+MyHWNziKvxT9StlqbkZGn32TYdNZAucaE7zpQ8GES3AvOZd3K9vc0VbEzcam/ezjytnFM0Fye8oFff7DF6UbP7T2WeIFLqv2TBzNpcLVQzeSQspxQMQnudmsm6VOBE4XvINWArWWWwhOC5oJvoCP5Y2GAUgr+dxMymOzdkufySY+hnd9SIen+6HxQEyVgF+UZleIAXfQHwVzPSDMrjHWgd22e4qiG1p0UzXQ3rJmxaiy3wYOGjt9wLAMnlhM/TqUKBDRWqmEANW0ruvE/G25evCsrwt9CBxQV+/alsfJMF8rVokhZgiXjuTELHtaW7dEAdjwgbNuHjnpp1p/xI3RdamyIgcFP9QmwAbdO8XRw2Dft9wguarrCg/c2t10qj8Fesy0ces8d9vpmL+nSt9lgvoa/4QB/eyGiOblV+yc85TynVRywkAZLUlyWLLEjBXMXhxcV1RsUzgzwpQLm8VQBeyZfdNhVu34XVV3JA1MOV+/cmFemPlPBYLJqR6q61V5T4uzhvTTAzPhGJNTaCWE6Kyo7C9pNVicZ0UAuDCZoCotzazsxlB89wmfOquXWcCGyuBD1t6jaef1Vd4vvG5r2DAU9Q/WUHUOQVHzodCtUh/IVhyObvJFnlR5o1BZbLjYxPYme0Vn0bKloMVSzdpies2japSe68VCXnsihZ2X6F0H/JwQN5+iqBI1RMItmOF7OEY0hPO9cxj4LKCoDhY2A6Cpqb08qVVBi5FA9uucpFy3Nl0DNHoRTtsrV+gCqVRpOFSyQEemtfpExQtQwgwVwhBrn9xVa6Na4cIC1/ggVzsnQ1MnQI8XktQSVP3+GIhT9OBmaORm6FWTDcj6QpE+/P4IQ8s6We+gSubdSBUZv6GOfYvzYLqVo4BSD/IEUxNdIwdzdxqoDyEIdpIGhIwc24Zmq21cJbPhDBdZcZ4ytuI/IkJeOrDYSp6u+b/yoq3Ac+X2ZbAlc2TK8yL+Xjukvtst1DOoZupbQ7p0SzeXF1XQMMkvvq6T3qFSd9ql6PXLOf5HzDHJG35yc/iWbKMHluilRr/LRlm0TP7ir/s6g3PfiTjwbTsXZ3EHxG4aOcOeC9CK8REmYYN+fYoo9OnCG6t1OLnFi305+pOmWKsHs3lI+8o3UN6vKyWM3lKNLeVHn9jwlb8uortzsK6QHnLFU5eYvllFYm96fdAf/H3mG82uIqGBq0SGYuyJqeqXzgcOP+Hr8wAX7dhRJ6fLnYUgQeG8yZD4OQ+Cx/bWs3nDanxyDD/8B</diagram></mxfile>"><defs/><g transform="translate(0.5,0.5)"><path d="M 283 367 C 283 345.67 348 345.67 348 367 L 348 415 C 348 436.33 283 436.33 283 415 Z" fill="#ffffff" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 283 367 C 283 383 348 383 348 367" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(287.5,395.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="54" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 54px; white-space: nowrap; word-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Database</div></div></foreignObject><text x="27" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">Database</text></switch></g><rect x="211" y="211" width="200" height="100" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="none"/><g transform="translate(252.5,234.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="115" height="51" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 115px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><b><font style="font-size: 15px">Web application</font></b><div><b><font size="4"><br /></font></b></div><div><b><br /></b></div></div></div></foreignObject><text x="58" y="32" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><path d="M 274.76 391 L 251 391 Q 241 391 241 381 L 241 308" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 280.76 391 L 272.76 395 L 274.76 391 L 272.76 387 Z" fill="#000000" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 348 391 L 372 391 Q 382 391 382 381 L 382 321.24" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 382 315.24 L 386 323.24 L 382 321.24 L 378 323.24 Z" fill="#000000" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><g transform="translate(177.5,327.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="50" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 50px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Write<div>datapoint</div></div></div></foreignObject><text x="25" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><g transform="translate(397.5,327.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="56" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 56px; white-space: nowrap; word-wrap: normal; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Read<div>datapoints</div></div></div></foreignObject><text x="28" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica">[Not supported by viewer]</text></switch></g><rect x="151" y="51" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="none"/><g transform="translate(182.5,67.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="55" height="26" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 55px; white-space: nowrap; word-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Arduino<div>MKR1000</div></div></div></foreignObject><text x="28" y="19" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">[Not supported by viewer]</text></switch></g><rect x="351" y="51" width="120" height="60" rx="9" ry="9" fill="#ffffff" stroke="#000000" stroke-width="2" pointer-events="none"/><g transform="translate(372.5,74.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="75" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 77px; white-space: nowrap; word-wrap: normal; font-weight: bold; text-align: center;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;">Web browser</div></div></foreignObject><text x="38" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Helvetica" font-weight="bold">Web browser</text></switch></g><path d="M 254.57 205.86 L 218.81 177.25 Q 211 171 211 161 L 211 111" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 259.25 209.6 L 250.51 207.73 L 254.57 205.86 L 255.51 201.48 Z" fill="#000000" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 367.43 205.86 L 403.19 177.25 Q 411 171 411 161 L 411 119.24" fill="none" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 362.75 209.6 L 366.49 201.48 L 367.43 205.86 L 371.49 207.73 Z" fill="#000000" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 411 113.24 L 415 121.24 L 411 119.24 L 407 121.24 Z" fill="#000000" stroke="#000000" stroke-width="2" stroke-miterlimit="10" pointer-events="none"/><path d="M 571 171 L 51 171" fill="none" stroke="#b3b3b3" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="none"/><g transform="translate(350.5,284.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="45" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: "Times New Roman"; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 46px; white-space: nowrap; word-wrap: normal; font-weight: bold; text-align: right;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font face="Helvetica">Route: /</font></div></div></foreignObject><text x="23" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Times New Roman" font-weight="bold">[Not supported by viewer]</text></switch></g><g transform="translate(222.5,284.5)"><switch><foreignObject style="overflow:visible;" pointer-events="all" width="62" height="12" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: inline-block; font-size: 12px; font-family: "Times New Roman"; color: rgb(0, 0, 0); line-height: 1.2; vertical-align: top; width: 63px; white-space: nowrap; word-wrap: normal; font-weight: bold;"><div xmlns="http://www.w3.org/1999/xhtml" style="display:inline-block;text-align:inherit;text-decoration:inherit;"><font face="Helvetica">Route: /api</font></div></div></foreignObject><text x="31" y="12" fill="#000000" text-anchor="middle" font-size="12px" font-family="Times New Roman" font-weight="bold">[Not supported by viewer]</text></switch></g></g></svg> \ No newline at end of file | ||
diff --git a/static/assets/posts/iot-application/simple-iot-application.zip b/static/assets/posts/iot-application/simple-iot-application.zip new file mode 100755 index 0000000..46d3205 --- /dev/null +++ b/static/assets/posts/iot-application/simple-iot-application.zip | |||
| Binary files differ | |||
diff --git a/static/assets/posts/iot-application/snakeviz.png b/static/assets/posts/iot-application/snakeviz.png new file mode 100755 index 0000000..5bab395 --- /dev/null +++ b/static/assets/posts/iot-application/snakeviz.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/microsoundtrack/cow.m4v b/static/assets/posts/microsoundtrack/cow.m4v new file mode 100644 index 0000000..1b2461b --- /dev/null +++ b/static/assets/posts/microsoundtrack/cow.m4v | |||
| Binary files differ | |||
diff --git a/static/assets/posts/pid1/boxes.mp4 b/static/assets/posts/pid1/boxes.mp4 new file mode 100755 index 0000000..eb647ff --- /dev/null +++ b/static/assets/posts/pid1/boxes.mp4 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/pid1/qemu.log b/static/assets/posts/pid1/qemu.log new file mode 100755 index 0000000..11be312 --- /dev/null +++ b/static/assets/posts/pid1/qemu.log | |||
| @@ -0,0 +1,320 @@ | |||
| 1 | [ 0.000000] Linux version 5.15.7 (m@khan) (gcc (GCC) 11.2.1 20211203 (Red Hat 11.2.1-7), GNU ld version 2.37-10.fc35) #7 SMP Mon Dec 13 10:23:25 CET 2021 | ||
| 2 | [ 0.000000] Command line: console=ttyS0 | ||
| 3 | [ 0.000000] x86/fpu: x87 FPU will use FXSAVE | ||
| 4 | [ 0.000000] signal: max sigframe size: 1440 | ||
| 5 | [ 0.000000] BIOS-provided physical RAM map: | ||
| 6 | [ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable | ||
| 7 | [ 0.000000] BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved | ||
| 8 | [ 0.000000] BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved | ||
| 9 | [ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x0000000007fdffff] usable | ||
| 10 | [ 0.000000] BIOS-e820: [mem 0x0000000007fe0000-0x0000000007ffffff] reserved | ||
| 11 | [ 0.000000] BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved | ||
| 12 | [ 0.000000] NX (Execute Disable) protection: active | ||
| 13 | [ 0.000000] SMBIOS 2.8 present. | ||
| 14 | [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-6.fc35 04/01/2014 | ||
| 15 | [ 0.000000] tsc: Fast TSC calibration failed | ||
| 16 | [ 0.000000] last_pfn = 0x7fe0 max_arch_pfn = 0x400000000 | ||
| 17 | [ 0.000000] x86/PAT: Configuration [0-7]: WB WC UC- UC WB WP UC- WT | ||
| 18 | [ 0.000000] found SMP MP-table at [mem 0x000f5c40-0x000f5c4f] | ||
| 19 | [ 0.000000] RAMDISK: [mem 0x07e06000-0x07fdffff] | ||
| 20 | [ 0.000000] ACPI: Early table checksum verification disabled | ||
| 21 | [ 0.000000] ACPI: RSDP 0x00000000000F5A80 000014 (v00 BOCHS ) | ||
| 22 | [ 0.000000] ACPI: RSDT 0x0000000007FE1905 000034 (v01 BOCHS BXPC 00000001 BXPC 00000001) | ||
| 23 | [ 0.000000] ACPI: FACP 0x0000000007FE17B9 000074 (v01 BOCHS BXPC 00000001 BXPC 00000001) | ||
| 24 | [ 0.000000] ACPI: DSDT 0x0000000007FE0040 001779 (v01 BOCHS BXPC 00000001 BXPC 00000001) | ||
| 25 | [ 0.000000] ACPI: FACS 0x0000000007FE0000 000040 | ||
| 26 | [ 0.000000] ACPI: APIC 0x0000000007FE182D 000078 (v01 BOCHS BXPC 00000001 BXPC 00000001) | ||
| 27 | [ 0.000000] ACPI: HPET 0x0000000007FE18A5 000038 (v01 BOCHS BXPC 00000001 BXPC 00000001) | ||
| 28 | [ 0.000000] ACPI: WAET 0x0000000007FE18DD 000028 (v01 BOCHS BXPC 00000001 BXPC 00000001) | ||
| 29 | [ 0.000000] ACPI: Reserving FACP table memory at [mem 0x7fe17b9-0x7fe182c] | ||
| 30 | [ 0.000000] ACPI: Reserving DSDT table memory at [mem 0x7fe0040-0x7fe17b8] | ||
| 31 | [ 0.000000] ACPI: Reserving FACS table memory at [mem 0x7fe0000-0x7fe003f] | ||
| 32 | [ 0.000000] ACPI: Reserving APIC table memory at [mem 0x7fe182d-0x7fe18a4] | ||
| 33 | [ 0.000000] ACPI: Reserving HPET table memory at [mem 0x7fe18a5-0x7fe18dc] | ||
| 34 | [ 0.000000] ACPI: Reserving WAET table memory at [mem 0x7fe18dd-0x7fe1904] | ||
| 35 | [ 0.000000] No NUMA configuration found | ||
| 36 | [ 0.000000] Faking a node at [mem 0x0000000000000000-0x0000000007fdffff] | ||
| 37 | [ 0.000000] NODE_DATA(0) allocated [mem 0x07e02000-0x07e05fff] | ||
| 38 | [ 0.000000] Zone ranges: | ||
| 39 | [ 0.000000] DMA [mem 0x0000000000001000-0x0000000000ffffff] | ||
| 40 | [ 0.000000] DMA32 [mem 0x0000000001000000-0x0000000007fdffff] | ||
| 41 | [ 0.000000] Normal empty | ||
| 42 | [ 0.000000] Movable zone start for each node | ||
| 43 | [ 0.000000] Early memory node ranges | ||
| 44 | [ 0.000000] node 0: [mem 0x0000000000001000-0x000000000009efff] | ||
| 45 | [ 0.000000] node 0: [mem 0x0000000000100000-0x0000000007fdffff] | ||
| 46 | [ 0.000000] Initmem setup node 0 [mem 0x0000000000001000-0x0000000007fdffff] | ||
| 47 | [ 0.000000] On node 0, zone DMA: 1 pages in unavailable ranges | ||
| 48 | [ 0.000000] On node 0, zone DMA: 97 pages in unavailable ranges | ||
| 49 | [ 0.000000] On node 0, zone DMA32: 32 pages in unavailable ranges | ||
| 50 | [ 0.000000] ACPI: PM-Timer IO Port: 0x608 | ||
| 51 | [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] dfl dfl lint[0x1]) | ||
| 52 | [ 0.000000] IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23 | ||
| 53 | [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) | ||
| 54 | [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) | ||
| 55 | [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) | ||
| 56 | [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) | ||
| 57 | [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) | ||
| 58 | [ 0.000000] ACPI: Using ACPI (MADT) for SMP configuration information | ||
| 59 | [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 | ||
| 60 | [ 0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs | ||
| 61 | [ 0.000000] PM: hibernation: Registered nosave memory: [mem 0x00000000-0x00000fff] | ||
| 62 | [ 0.000000] PM: hibernation: Registered nosave memory: [mem 0x0009f000-0x0009ffff] | ||
| 63 | [ 0.000000] PM: hibernation: Registered nosave memory: [mem 0x000a0000-0x000effff] | ||
| 64 | [ 0.000000] PM: hibernation: Registered nosave memory: [mem 0x000f0000-0x000fffff] | ||
| 65 | [ 0.000000] [mem 0x08000000-0xfffbffff] available for PCI devices | ||
| 66 | [ 0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1910969940391419 ns | ||
| 67 | [ 0.000000] setup_percpu: NR_CPUS:64 nr_cpumask_bits:64 nr_cpu_ids:1 nr_node_ids:1 | ||
| 68 | [ 0.000000] percpu: Embedded 52 pages/cpu s174360 r8192 d30440 u2097152 | ||
| 69 | [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 31968 | ||
| 70 | [ 0.000000] Policy zone: DMA32 | ||
| 71 | [ 0.000000] Kernel command line: console=ttyS0 | ||
| 72 | [ 0.000000] Dentry cache hash table entries: 16384 (order: 5, 131072 bytes, linear) | ||
| 73 | [ 0.000000] Inode-cache hash table entries: 8192 (order: 4, 65536 bytes, linear) | ||
| 74 | [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off | ||
| 75 | [ 0.000000] Memory: 94464K/130552K available (14350K kernel code, 2582K rwdata, 3596K rodata, 1368K init, 1488K bss, 35828K reserved, 0K cma-reserved) | ||
| 76 | [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 | ||
| 77 | [ 0.000000] rcu: Hierarchical RCU implementation. | ||
| 78 | [ 0.000000] rcu: RCU event tracing is enabled. | ||
| 79 | [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=64 to nr_cpu_ids=1. | ||
| 80 | [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies. | ||
| 81 | [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1 | ||
| 82 | [ 0.000000] NR_IRQS: 4352, nr_irqs: 256, preallocated irqs: 16 | ||
| 83 | [ 0.000000] random: get_random_bytes called from start_kernel+0x492/0x65f with crng_init=0 | ||
| 84 | [ 0.000000] Console: colour VGA+ 80x25 | ||
| 85 | [ 0.000000] printk: console [ttyS0] enabled | ||
| 86 | [ 0.000000] ACPI: Core revision 20210730 | ||
| 87 | [ 0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604467 ns | ||
| 88 | [ 0.002000] APIC: Switch to symmetric I/O mode setup | ||
| 89 | [ 0.005000] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 | ||
| 90 | [ 0.013000] tsc: Unable to calibrate against PIT | ||
| 91 | [ 0.014000] tsc: using HPET reference calibration | ||
| 92 | [ 0.014000] tsc: Detected 3189.099 MHz processor | ||
| 93 | [ 0.001005] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x2df8103a89b, max_idle_ns: 440795220785 ns | ||
| 94 | [ 0.002672] Calibrating delay loop (skipped), value calculated using timer frequency.. 6378.19 BogoMIPS (lpj=3189099) | ||
| 95 | [ 0.002960] pid_max: default: 32768 minimum: 301 | ||
| 96 | [ 0.003627] LSM: Security Framework initializing | ||
| 97 | [ 0.004329] SELinux: Initializing. | ||
| 98 | [ 0.005051] Mount-cache hash table entries: 512 (order: 0, 4096 bytes, linear) | ||
| 99 | [ 0.005202] Mountpoint-cache hash table entries: 512 (order: 0, 4096 bytes, linear) | ||
| 100 | [ 0.020479] process: using AMD E400 aware idle routine | ||
| 101 | [ 0.020699] Last level iTLB entries: 4KB 512, 2MB 255, 4MB 127 | ||
| 102 | [ 0.020832] Last level dTLB entries: 4KB 512, 2MB 255, 4MB 127, 1GB 0 | ||
| 103 | [ 0.021165] Spectre V1 : Mitigation: usercopy/swapgs barriers and __user pointer sanitization | ||
| 104 | [ 0.021438] Spectre V2 : Mitigation: Full AMD retpoline | ||
| 105 | [ 0.021586] Spectre V2 : Spectre v2 / SpectreRSB mitigation: Filling RSB on context switch | ||
| 106 | [ 0.238228] Freeing SMP alternatives memory: 44K | ||
| 107 | [ 0.242641] random: fast init done | ||
| 108 | [ 0.350203] smpboot: CPU0: AMD QEMU Virtual CPU version 2.5+ (family: 0xf, model: 0x6b, stepping: 0x1) | ||
| 109 | [ 0.355136] Performance Events: PMU not available due to virtualization, using software events only. | ||
| 110 | [ 0.356607] rcu: Hierarchical SRCU implementation. | ||
| 111 | [ 0.360890] smp: Bringing up secondary CPUs ... | ||
| 112 | [ 0.361082] smp: Brought up 1 node, 1 CPU | ||
| 113 | [ 0.361253] smpboot: Max logical packages: 1 | ||
| 114 | [ 0.361394] smpboot: Total of 1 processors activated (6378.19 BogoMIPS) | ||
| 115 | [ 0.371481] devtmpfs: initialized | ||
| 116 | [ 0.378162] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns | ||
| 117 | [ 0.378478] futex hash table entries: 256 (order: 2, 16384 bytes, linear) | ||
| 118 | [ 0.381522] PM: RTC time: 00:19:47, date: 2021-12-27 | ||
| 119 | [ 0.384915] NET: Registered PF_NETLINK/PF_ROUTE protocol family | ||
| 120 | [ 0.387403] audit: initializing netlink subsys (disabled) | ||
| 121 | [ 0.391765] audit: type=2000 audit(1640564386.402:1): state=initialized audit_enabled=0 res=1 | ||
| 122 | [ 0.392916] thermal_sys: Registered thermal governor 'step_wise' | ||
| 123 | [ 0.392950] thermal_sys: Registered thermal governor 'user_space' | ||
| 124 | [ 0.393202] cpuidle: using governor menu | ||
| 125 | [ 0.394085] ACPI: bus type PCI registered | ||
| 126 | [ 0.396583] PCI: Using configuration type 1 for base access | ||
| 127 | [ 0.415012] Kprobes globally optimized | ||
| 128 | [ 0.416844] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages | ||
| 129 | [ 0.420649] cryptomgr_test (20) used greatest stack depth: 15680 bytes left | ||
| 130 | [ 0.426071] ACPI: Added _OSI(Module Device) | ||
| 131 | [ 0.426182] ACPI: Added _OSI(Processor Device) | ||
| 132 | [ 0.426279] ACPI: Added _OSI(3.0 _SCP Extensions) | ||
| 133 | [ 0.426376] ACPI: Added _OSI(Processor Aggregator Device) | ||
| 134 | [ 0.426606] ACPI: Added _OSI(Linux-Dell-Video) | ||
| 135 | [ 0.426709] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio) | ||
| 136 | [ 0.426821] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics) | ||
| 137 | [ 0.439511] ACPI: 1 ACPI AML tables successfully acquired and loaded | ||
| 138 | [ 0.452709] ACPI: Interpreter enabled | ||
| 139 | [ 0.453468] ACPI: PM: (supports S0 S3 S4 S5) | ||
| 140 | [ 0.453603] ACPI: Using IOAPIC for interrupt routing | ||
| 141 | [ 0.454022] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug | ||
| 142 | [ 0.455266] ACPI: Enabled 2 GPEs in block 00 to 0F | ||
| 143 | [ 0.480013] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) | ||
| 144 | [ 0.480702] acpi PNP0A03:00: _OSC: OS supports [ASPM ClockPM Segments MSI HPX-Type3] | ||
| 145 | [ 0.481425] acpi PNP0A03:00: fail to add MMCONFIG information, can't access extended PCI configuration space under this bridge. | ||
| 146 | [ 0.483666] PCI host bridge to bus 0000:00 | ||
| 147 | [ 0.483848] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7 window] | ||
| 148 | [ 0.484096] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff window] | ||
| 149 | [ 0.484237] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff window] | ||
| 150 | [ 0.484480] pci_bus 0000:00: root bus resource [mem 0x08000000-0xfebfffff window] | ||
| 151 | [ 0.484578] pci_bus 0000:00: root bus resource [mem 0x100000000-0x17fffffff window] | ||
| 152 | [ 0.484870] pci_bus 0000:00: root bus resource [bus 00-ff] | ||
| 153 | [ 0.486588] pci 0000:00:00.0: [8086:1237] type 00 class 0x060000 | ||
| 154 | [ 0.492625] pci 0000:00:01.0: [8086:7000] type 00 class 0x060100 | ||
| 155 | [ 0.493621] pci 0000:00:01.1: [8086:7010] type 00 class 0x010180 | ||
| 156 | [ 0.495015] pci 0000:00:01.1: reg 0x20: [io 0xc040-0xc04f] | ||
| 157 | [ 0.495760] pci 0000:00:01.1: legacy IDE quirk: reg 0x10: [io 0x01f0-0x01f7] | ||
| 158 | [ 0.495936] pci 0000:00:01.1: legacy IDE quirk: reg 0x14: [io 0x03f6] | ||
| 159 | [ 0.496095] pci 0000:00:01.1: legacy IDE quirk: reg 0x18: [io 0x0170-0x0177] | ||
| 160 | [ 0.496598] pci 0000:00:01.1: legacy IDE quirk: reg 0x1c: [io 0x0376] | ||
| 161 | [ 0.497793] pci 0000:00:01.3: [8086:7113] type 00 class 0x068000 | ||
| 162 | [ 0.498219] pci 0000:00:01.3: quirk: [io 0x0600-0x063f] claimed by PIIX4 ACPI | ||
| 163 | [ 0.498384] pci 0000:00:01.3: quirk: [io 0x0700-0x070f] claimed by PIIX4 SMB | ||
| 164 | [ 0.499487] pci 0000:00:02.0: [1234:1111] type 00 class 0x030000 | ||
| 165 | [ 0.500186] pci 0000:00:02.0: reg 0x10: [mem 0xfd000000-0xfdffffff pref] | ||
| 166 | [ 0.500569] pci 0000:00:02.0: reg 0x18: [mem 0xfebf0000-0xfebf0fff] | ||
| 167 | [ 0.502569] pci 0000:00:02.0: reg 0x30: [mem 0xfebe0000-0xfebeffff pref] | ||
| 168 | [ 0.508052] pci 0000:00:03.0: [8086:100e] type 00 class 0x020000 | ||
| 169 | [ 0.508590] pci 0000:00:03.0: reg 0x10: [mem 0xfebc0000-0xfebdffff] | ||
| 170 | [ 0.509075] pci 0000:00:03.0: reg 0x14: [io 0xc000-0xc03f] | ||
| 171 | [ 0.511015] pci 0000:00:03.0: reg 0x30: [mem 0xfeb80000-0xfebbffff pref] | ||
| 172 | [ 0.517286] ACPI: PCI: Interrupt link LNKA configured for IRQ 10 | ||
| 173 | [ 0.518032] ACPI: PCI: Interrupt link LNKB configured for IRQ 10 | ||
| 174 | [ 0.518504] ACPI: PCI: Interrupt link LNKC configured for IRQ 11 | ||
| 175 | [ 0.518920] ACPI: PCI: Interrupt link LNKD configured for IRQ 11 | ||
| 176 | [ 0.519208] ACPI: PCI: Interrupt link LNKS configured for IRQ 9 | ||
| 177 | [ 0.521412] iommu: Default domain type: Translated | ||
| 178 | [ 0.521589] iommu: DMA domain TLB invalidation policy: lazy mode | ||
| 179 | [ 0.524448] pci 0000:00:02.0: vgaarb: setting as boot VGA device | ||
| 180 | [ 0.524569] pci 0000:00:02.0: vgaarb: VGA device added: decodes=io+mem,owns=io+mem,locks=none | ||
| 181 | [ 0.524633] pci 0000:00:02.0: vgaarb: bridge control possible | ||
| 182 | [ 0.524846] vgaarb: loaded | ||
| 183 | [ 0.526151] SCSI subsystem initialized | ||
| 184 | [ 0.528124] ACPI: bus type USB registered | ||
| 185 | [ 0.528600] usbcore: registered new interface driver usbfs | ||
| 186 | [ 0.528917] usbcore: registered new interface driver hub | ||
| 187 | [ 0.529156] usbcore: registered new device driver usb | ||
| 188 | [ 0.529593] pps_core: LinuxPPS API ver. 1 registered | ||
| 189 | [ 0.529693] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> | ||
| 190 | [ 0.529916] PTP clock support registered | ||
| 191 | [ 0.531428] Advanced Linux Sound Architecture Driver Initialized. | ||
| 192 | [ 0.538313] NetLabel: Initializing | ||
| 193 | [ 0.538413] NetLabel: domain hash size = 128 | ||
| 194 | [ 0.538513] NetLabel: protocols = UNLABELED CIPSOv4 CALIPSO | ||
| 195 | [ 0.539300] NetLabel: unlabeled traffic allowed by default | ||
| 196 | [ 0.540192] PCI: Using ACPI for IRQ routing | ||
| 197 | [ 0.541336] hpet: 3 channels of 0 reserved for per-cpu timers | ||
| 198 | [ 0.541742] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 | ||
| 199 | [ 0.541934] hpet0: 3 comparators, 64-bit 100.000000 MHz counter | ||
| 200 | [ 0.547124] clocksource: Switched to clocksource tsc-early | ||
| 201 | [ 0.589778] VFS: Disk quotas dquot_6.6.0 | ||
| 202 | [ 0.590116] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) | ||
| 203 | [ 0.591999] pnp: PnP ACPI init | ||
| 204 | [ 1.348853] pnp: PnP ACPI: found 6 devices | ||
| 205 | [ 1.363393] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns | ||
| 206 | [ 1.364026] NET: Registered PF_INET protocol family | ||
| 207 | [ 1.364871] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear) | ||
| 208 | [ 1.369722] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear) | ||
| 209 | [ 1.369973] TCP established hash table entries: 1024 (order: 1, 8192 bytes, linear) | ||
| 210 | [ 1.370241] TCP bind hash table entries: 1024 (order: 2, 16384 bytes, linear) | ||
| 211 | [ 1.370483] TCP: Hash tables configured (established 1024 bind 1024) | ||
| 212 | [ 1.371348] UDP hash table entries: 256 (order: 1, 8192 bytes, linear) | ||
| 213 | [ 1.371835] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear) | ||
| 214 | [ 1.373053] NET: Registered PF_UNIX/PF_LOCAL protocol family | ||
| 215 | [ 1.374701] RPC: Registered named UNIX socket transport module. | ||
| 216 | [ 1.375153] RPC: Registered udp transport module. | ||
| 217 | [ 1.375280] RPC: Registered tcp transport module. | ||
| 218 | [ 1.375386] RPC: Registered tcp NFSv4.1 backchannel transport module. | ||
| 219 | [ 1.377429] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7 window] | ||
| 220 | [ 1.377567] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff window] | ||
| 221 | [ 1.377738] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff window] | ||
| 222 | [ 1.377893] pci_bus 0000:00: resource 7 [mem 0x08000000-0xfebfffff window] | ||
| 223 | [ 1.378032] pci_bus 0000:00: resource 8 [mem 0x100000000-0x17fffffff window] | ||
| 224 | [ 1.378574] pci 0000:00:01.0: PIIX3: Enabling Passive Release | ||
| 225 | [ 1.378817] pci 0000:00:00.0: Limiting direct PCI/PCI transfers | ||
| 226 | [ 1.378993] pci 0000:00:01.0: Activating ISA DMA hang workarounds | ||
| 227 | [ 1.379296] pci 0000:00:02.0: Video device with shadowed ROM at [mem 0x000c0000-0x000dffff] | ||
| 228 | [ 1.379537] PCI: CLS 0 bytes, default 64 | ||
| 229 | [ 1.385473] Unpacking initramfs... | ||
| 230 | [ 1.394653] Initialise system trusted keyrings | ||
| 231 | [ 1.395898] workingset: timestamp_bits=56 max_order=15 bucket_order=0 | ||
| 232 | [ 1.400517] Freeing initrd memory: 1896K | ||
| 233 | [ 1.409899] NFS: Registering the id_resolver key type | ||
| 234 | [ 1.410240] Key type id_resolver registered | ||
| 235 | [ 1.410358] Key type id_legacy registered | ||
| 236 | [ 1.436299] Key type asymmetric registered | ||
| 237 | [ 1.436505] Asymmetric key parser 'x509' registered | ||
| 238 | [ 1.436899] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) | ||
| 239 | [ 1.437334] io scheduler mq-deadline registered | ||
| 240 | [ 1.437848] io scheduler kyber registered | ||
| 241 | [ 1.440723] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0 | ||
| 242 | [ 1.443386] ACPI: button: Power Button [PWRF] | ||
| 243 | [ 1.445654] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled | ||
| 244 | [ 1.447264] 00:04: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A | ||
| 245 | [ 1.450740] Non-volatile memory driver v1.3 | ||
| 246 | [ 1.451106] Linux agpgart interface v0.103 | ||
| 247 | [ 1.467087] loop: module loaded | ||
| 248 | [ 1.474468] scsi host0: ata_piix | ||
| 249 | [ 1.476252] scsi host1: ata_piix | ||
| 250 | [ 1.476701] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc040 irq 14 | ||
| 251 | [ 1.476882] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc048 irq 15 | ||
| 252 | [ 1.481539] libphy: Fixed MDIO Bus: probed | ||
| 253 | [ 1.482188] e100: Intel(R) PRO/100 Network Driver | ||
| 254 | [ 1.482313] e100: Copyright(c) 1999-2006 Intel Corporation | ||
| 255 | [ 1.482507] e1000: Intel(R) PRO/1000 Network Driver | ||
| 256 | [ 1.482702] e1000: Copyright (c) 1999-2006 Intel Corporation. | ||
| 257 | [ 1.616439] ACPI: \_SB_.LNKC: Enabled at IRQ 11 | ||
| 258 | [ 1.649465] ata2.00: ATAPI: QEMU DVD-ROM, 2.5+, max UDMA/100 | ||
| 259 | [ 1.664135] scsi 1:0:0:0: CD-ROM QEMU QEMU DVD-ROM 2.5+ PQ: 0 ANSI: 5 | ||
| 260 | [ 1.693021] sr 1:0:0:0: [sr0] scsi3-mmc drive: 4x/4x cd/rw xa/form2 tray | ||
| 261 | [ 1.693338] cdrom: Uniform CD-ROM driver Revision: 3.20 | ||
| 262 | [ 1.723925] sr 1:0:0:0: Attached scsi generic sg0 type 5 | ||
| 263 | [ 1.946674] e1000 0000:00:03.0 eth0: (PCI:33MHz:32-bit) 52:54:00:12:34:56 | ||
| 264 | [ 1.947107] e1000 0000:00:03.0 eth0: Intel(R) PRO/1000 Network Connection | ||
| 265 | [ 1.947650] e1000e: Intel(R) PRO/1000 Network Driver | ||
| 266 | [ 1.947749] e1000e: Copyright(c) 1999 - 2015 Intel Corporation. | ||
| 267 | [ 1.947947] sky2: driver version 1.30 | ||
| 268 | [ 1.948805] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver | ||
| 269 | [ 1.948993] ehci-pci: EHCI PCI platform driver | ||
| 270 | [ 1.949218] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver | ||
| 271 | [ 1.949394] ohci-pci: OHCI PCI platform driver | ||
| 272 | [ 1.949636] uhci_hcd: USB Universal Host Controller Interface driver | ||
| 273 | [ 1.950082] usbcore: registered new interface driver usblp | ||
| 274 | [ 1.950302] usbcore: registered new interface driver usb-storage | ||
| 275 | [ 1.951012] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12 | ||
| 276 | [ 1.954333] serio: i8042 KBD port at 0x60,0x64 irq 1 | ||
| 277 | [ 1.954634] serio: i8042 AUX port at 0x60,0x64 irq 12 | ||
| 278 | [ 1.957984] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1 | ||
| 279 | [ 1.960071] rtc_cmos 00:05: RTC can wake from S4 | ||
| 280 | [ 1.964738] rtc_cmos 00:05: registered as rtc0 | ||
| 281 | [ 1.965357] rtc_cmos 00:05: alarms up to one day, y3k, 242 bytes nvram, hpet irqs | ||
| 282 | [ 1.966676] device-mapper: ioctl: 4.45.0-ioctl (2021-03-22) initialised: dm-devel@redhat.com | ||
| 283 | [ 1.967364] hid: raw HID events driver (C) Jiri Kosina | ||
| 284 | [ 1.968571] usbcore: registered new interface driver usbhid | ||
| 285 | [ 1.968750] usbhid: USB HID core driver | ||
| 286 | [ 1.974818] Initializing XFRM netlink socket | ||
| 287 | [ 1.975673] NET: Registered PF_INET6 protocol family | ||
| 288 | [ 1.981212] Segment Routing with IPv6 | ||
| 289 | [ 1.981421] In-situ OAM (IOAM) with IPv6 | ||
| 290 | [ 1.982292] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver | ||
| 291 | [ 1.984278] NET: Registered PF_PACKET protocol family | ||
| 292 | [ 1.984857] Key type dns_resolver registered | ||
| 293 | [ 1.985989] IPI shorthand broadcast: enabled | ||
| 294 | [ 1.986261] sched_clock: Marking stable (1999028700, -13430834)->(1985937339, -339473) | ||
| 295 | [ 1.987965] registered taskstats version 1 | ||
| 296 | [ 1.988095] Loading compiled-in X.509 certificates | ||
| 297 | [ 1.991283] PM: Magic number: 1:335:305 | ||
| 298 | [ 1.991523] tty tty34: hash matches | ||
| 299 | [ 1.991951] printk: console [netcon0] enabled | ||
| 300 | [ 1.992067] netconsole: network logging started | ||
| 301 | [ 1.994549] cfg80211: Loading compiled-in X.509 certificates for regulatory database | ||
| 302 | [ 2.004972] kworker/u2:2 (64) used greatest stack depth: 14856 bytes left | ||
| 303 | [ 2.012521] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' | ||
| 304 | [ 2.013924] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 | ||
| 305 | [ 2.014318] cfg80211: failed to load regulatory.db | ||
| 306 | [ 2.016106] ALSA device list: | ||
| 307 | [ 2.016329] No soundcards found. | ||
| 308 | [ 2.053176] Freeing unused kernel image (initmem) memory: 1368K | ||
| 309 | [ 2.056095] Write protecting the kernel read-only data: 20480k | ||
| 310 | [ 2.058248] Freeing unused kernel image (text/rodata gap) memory: 2032K | ||
| 311 | [ 2.058811] Freeing unused kernel image (rodata/data gap) memory: 500K | ||
| 312 | [ 2.059164] Run /init as init process | ||
| 313 | Hello from Golang | ||
| 314 | [ 2.386879] tsc: Refined TSC clocksource calibration: 3192.032 MHz | ||
| 315 | [ 2.387114] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x2e02e31fa14, max_idle_ns: 440795264947 ns | ||
| 316 | [ 2.387380] clocksource: Switched to clocksource tsc | ||
| 317 | [ 2.587895] input: ImExPS/2 Generic Explorer Mouse as /devices/platform/i8042/serio1/input/input3 | ||
| 318 | Hello from Golang | ||
| 319 | Hello from Golang | ||
| 320 | Hello from Golang | ||
diff --git a/static/assets/posts/pid1/unikernels.png b/static/assets/posts/pid1/unikernels.png new file mode 100644 index 0000000..4396d02 --- /dev/null +++ b/static/assets/posts/pid1/unikernels.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/pid1/unikernels.svg b/static/assets/posts/pid1/unikernels.svg new file mode 100755 index 0000000..47ad8f0 --- /dev/null +++ b/static/assets/posts/pid1/unikernels.svg | |||
| @@ -0,0 +1,587 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | <!-- Created with Inkscape (http://www.inkscape.org/) --> | ||
| 3 | |||
| 4 | <svg | ||
| 5 | width="200.21642mm" | ||
| 6 | height="75mm" | ||
| 7 | viewBox="0 0 200.21642 75" | ||
| 8 | version="1.1" | ||
| 9 | id="svg5" | ||
| 10 | inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" | ||
| 11 | sodipodi:docname="unikernels.svg" | ||
| 12 | inkscape:export-filename="unikernels.webp" | ||
| 13 | inkscape:export-xdpi="202.98035" | ||
| 14 | inkscape:export-ydpi="202.98035" | ||
| 15 | xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | ||
| 16 | xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | ||
| 17 | xmlns="http://www.w3.org/2000/svg" | ||
| 18 | xmlns:svg="http://www.w3.org/2000/svg"> | ||
| 19 | <sodipodi:namedview | ||
| 20 | id="namedview7" | ||
| 21 | pagecolor="#ffffff" | ||
| 22 | bordercolor="#666666" | ||
| 23 | borderopacity="1.0" | ||
| 24 | inkscape:pageshadow="2" | ||
| 25 | inkscape:pageopacity="0.0" | ||
| 26 | inkscape:pagecheckerboard="0" | ||
| 27 | inkscape:document-units="mm" | ||
| 28 | showgrid="false" | ||
| 29 | inkscape:zoom="1.0570195" | ||
| 30 | inkscape:cx="460.72944" | ||
| 31 | inkscape:cy="274.35634" | ||
| 32 | inkscape:window-width="2803" | ||
| 33 | inkscape:window-height="1917" | ||
| 34 | inkscape:window-x="661" | ||
| 35 | inkscape:window-y="163" | ||
| 36 | inkscape:window-maximized="0" | ||
| 37 | inkscape:current-layer="g2" | ||
| 38 | showguides="true" | ||
| 39 | inkscape:guide-bbox="true" | ||
| 40 | inkscape:showpageshadow="2" | ||
| 41 | inkscape:deskcolor="#d1d1d1" /> | ||
| 42 | <defs | ||
| 43 | id="defs2" /> | ||
| 44 | <g | ||
| 45 | inkscape:label="Layer 1" | ||
| 46 | inkscape:groupmode="layer" | ||
| 47 | id="layer1" | ||
| 48 | transform="translate(0.10821027)"> | ||
| 49 | <g | ||
| 50 | id="g2"> | ||
| 51 | <rect | ||
| 52 | style="fill:#ececec;stroke:none;stroke-width:0.317673;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 53 | id="rect18248" | ||
| 54 | width="65.511665" | ||
| 55 | height="74.960197" | ||
| 56 | x="-0.10821027" | ||
| 57 | y="0.039806042" | ||
| 58 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 59 | inkscape:export-xdpi="127.98862" | ||
| 60 | inkscape:export-ydpi="127.98862" /> | ||
| 61 | <text | ||
| 62 | xml:space="preserve" | ||
| 63 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 64 | x="33.413715" | ||
| 65 | y="69.135246" | ||
| 66 | id="text18439" | ||
| 67 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 68 | inkscape:export-xdpi="127.98862" | ||
| 69 | inkscape:export-ydpi="127.98862"><tspan | ||
| 70 | sodipodi:role="line" | ||
| 71 | id="tspan18437" | ||
| 72 | style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583" | ||
| 73 | x="33.413715" | ||
| 74 | y="69.135246">VIRTUAL MACHINE</tspan></text> | ||
| 75 | <g | ||
| 76 | id="g50691" | ||
| 77 | transform="translate(-5.8033597,-177.06712)" | ||
| 78 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 79 | inkscape:export-xdpi="127.98862" | ||
| 80 | inkscape:export-ydpi="127.98862"> | ||
| 81 | <rect | ||
| 82 | style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 83 | id="rect38097-3" | ||
| 84 | width="50.57568" | ||
| 85 | height="8.4333" | ||
| 86 | x="13.294504" | ||
| 87 | y="213.63496" | ||
| 88 | ry="1.5" /> | ||
| 89 | <text | ||
| 90 | xml:space="preserve" | ||
| 91 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 92 | x="38.437649" | ||
| 93 | y="218.54976" | ||
| 94 | id="text32261"><tspan | ||
| 95 | sodipodi:role="line" | ||
| 96 | id="tspan32259" | ||
| 97 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 98 | x="38.437649" | ||
| 99 | y="218.54976">HOST OS / HYPERVISOR</tspan></text> | ||
| 100 | </g> | ||
| 101 | <rect | ||
| 102 | style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 103 | id="rect38097" | ||
| 104 | width="22.000685" | ||
| 105 | height="26.315866" | ||
| 106 | x="7.4911447" | ||
| 107 | y="6.5477819" | ||
| 108 | ry="1.5" /> | ||
| 109 | <text | ||
| 110 | xml:space="preserve" | ||
| 111 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 112 | x="18.532665" | ||
| 113 | y="26.623709" | ||
| 114 | id="text38435" | ||
| 115 | dx="0 0 0 0 0 0 0 0"><tspan | ||
| 116 | sodipodi:role="line" | ||
| 117 | id="tspan38433" | ||
| 118 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 119 | x="18.532665" | ||
| 120 | y="26.623709">VIRTUAL</tspan><tspan | ||
| 121 | sodipodi:role="line" | ||
| 122 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 123 | x="18.532665" | ||
| 124 | y="28.740379" | ||
| 125 | id="tspan38945">MACHINE</tspan></text> | ||
| 126 | <text | ||
| 127 | xml:space="preserve" | ||
| 128 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 129 | x="18.532665" | ||
| 130 | y="20.60285" | ||
| 131 | id="text41165"><tspan | ||
| 132 | sodipodi:role="line" | ||
| 133 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 134 | x="18.532665" | ||
| 135 | y="20.60285" | ||
| 136 | id="tspan41163">GUEST OS</tspan></text> | ||
| 137 | <text | ||
| 138 | xml:space="preserve" | ||
| 139 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 140 | x="18.532665" | ||
| 141 | y="11.807091" | ||
| 142 | id="text42587"><tspan | ||
| 143 | sodipodi:role="line" | ||
| 144 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 145 | x="18.532665" | ||
| 146 | y="11.807091" | ||
| 147 | id="tspan42611"><tspan | ||
| 148 | dx="0.088498212" | ||
| 149 | id="tspan1" | ||
| 150 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583">TARGET</tspan></tspan><tspan | ||
| 151 | sodipodi:role="line" | ||
| 152 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 153 | x="18.532665" | ||
| 154 | y="13.92376" | ||
| 155 | id="tspan2">SOFTWARE</tspan></text> | ||
| 156 | <g | ||
| 157 | id="g50696" | ||
| 158 | transform="translate(-5.8033597,-174.95045)" | ||
| 159 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 160 | inkscape:export-xdpi="127.98862" | ||
| 161 | inkscape:export-ydpi="127.98862"> | ||
| 162 | <rect | ||
| 163 | style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 164 | id="rect48544" | ||
| 165 | width="50.57568" | ||
| 166 | height="8.4333" | ||
| 167 | x="13.294504" | ||
| 168 | y="223.15991" | ||
| 169 | ry="1.5" /> | ||
| 170 | <text | ||
| 171 | xml:space="preserve" | ||
| 172 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 173 | x="38.437649" | ||
| 174 | y="228.24654" | ||
| 175 | id="text47169"><tspan | ||
| 176 | sodipodi:role="line" | ||
| 177 | id="tspan47167" | ||
| 178 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 179 | x="38.437649" | ||
| 180 | y="228.24654">HARDWARE</tspan></text> | ||
| 181 | </g> | ||
| 182 | <g | ||
| 183 | id="g48202" | ||
| 184 | transform="translate(22.771639,-177.59628)" | ||
| 185 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 186 | inkscape:export-xdpi="127.98862" | ||
| 187 | inkscape:export-ydpi="127.98862"> | ||
| 188 | <rect | ||
| 189 | style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 190 | id="rect48184" | ||
| 191 | width="22.000685" | ||
| 192 | height="26.315866" | ||
| 193 | x="13.294504" | ||
| 194 | y="184.14406" | ||
| 195 | ry="1.5" /> | ||
| 196 | <text | ||
| 197 | xml:space="preserve" | ||
| 198 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 199 | x="24.336025" | ||
| 200 | y="204.21999" | ||
| 201 | id="text48190"><tspan | ||
| 202 | sodipodi:role="line" | ||
| 203 | id="tspan48186" | ||
| 204 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 205 | x="24.336025" | ||
| 206 | y="204.21999">VIRTUAL</tspan><tspan | ||
| 207 | sodipodi:role="line" | ||
| 208 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 209 | x="24.336025" | ||
| 210 | y="206.33665" | ||
| 211 | id="tspan48188">MACHINE</tspan></text> | ||
| 212 | <text | ||
| 213 | xml:space="preserve" | ||
| 214 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 215 | x="24.336025" | ||
| 216 | y="198.19913" | ||
| 217 | id="text48194"><tspan | ||
| 218 | sodipodi:role="line" | ||
| 219 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 220 | x="24.336025" | ||
| 221 | y="198.19913" | ||
| 222 | id="tspan48192">GUEST OS</tspan></text> | ||
| 223 | <text | ||
| 224 | xml:space="preserve" | ||
| 225 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 226 | x="24.336025" | ||
| 227 | y="189.40337" | ||
| 228 | id="text48200"><tspan | ||
| 229 | sodipodi:role="line" | ||
| 230 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 231 | x="24.336025" | ||
| 232 | y="189.40337" | ||
| 233 | id="tspan48196">TARGET</tspan><tspan | ||
| 234 | sodipodi:role="line" | ||
| 235 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 236 | x="24.336025" | ||
| 237 | y="191.52003" | ||
| 238 | id="tspan48198">SOFTWARE</tspan></text> | ||
| 239 | </g> | ||
| 240 | </g> | ||
| 241 | <g | ||
| 242 | id="g19" | ||
| 243 | transform="translate(-1.6776424,0.01990127)"> | ||
| 244 | <g | ||
| 245 | id="g17" | ||
| 246 | transform="translate(69.03002,-0.03980604)"> | ||
| 247 | <rect | ||
| 248 | style="fill:#ececec;stroke:none;stroke-width:0.317673;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 249 | id="rect2" | ||
| 250 | width="65.511665" | ||
| 251 | height="74.960197" | ||
| 252 | x="-0.10821027" | ||
| 253 | y="0.039806042" | ||
| 254 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 255 | inkscape:export-xdpi="127.98862" | ||
| 256 | inkscape:export-ydpi="127.98862" /> | ||
| 257 | <text | ||
| 258 | xml:space="preserve" | ||
| 259 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 260 | x="30.965847" | ||
| 261 | y="69.175049" | ||
| 262 | id="text3" | ||
| 263 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 264 | inkscape:export-xdpi="127.98862" | ||
| 265 | inkscape:export-ydpi="127.98862"><tspan | ||
| 266 | sodipodi:role="line" | ||
| 267 | id="tspan3" | ||
| 268 | style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583" | ||
| 269 | x="30.965847" | ||
| 270 | y="69.175049">CONTAINERS</tspan></text> | ||
| 271 | <g | ||
| 272 | id="g4" | ||
| 273 | transform="translate(-5.8033597,-177.06712)" | ||
| 274 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 275 | inkscape:export-xdpi="127.98862" | ||
| 276 | inkscape:export-ydpi="127.98862"> | ||
| 277 | <rect | ||
| 278 | style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 279 | id="rect3" | ||
| 280 | width="50.57568" | ||
| 281 | height="8.4333" | ||
| 282 | x="13.294504" | ||
| 283 | y="213.63496" | ||
| 284 | ry="1.5" /> | ||
| 285 | <text | ||
| 286 | xml:space="preserve" | ||
| 287 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 288 | x="38.437649" | ||
| 289 | y="218.72159" | ||
| 290 | id="text4"><tspan | ||
| 291 | sodipodi:role="line" | ||
| 292 | id="tspan4" | ||
| 293 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 294 | x="38.437649" | ||
| 295 | y="218.72159">HOST OS</tspan></text> | ||
| 296 | </g> | ||
| 297 | <rect | ||
| 298 | style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 299 | id="rect4" | ||
| 300 | width="22.000685" | ||
| 301 | height="26.315866" | ||
| 302 | x="7.4911447" | ||
| 303 | y="6.5477819" | ||
| 304 | ry="1.5" /> | ||
| 305 | <text | ||
| 306 | xml:space="preserve" | ||
| 307 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 308 | x="18.532665" | ||
| 309 | y="26.623709" | ||
| 310 | id="text6"><tspan | ||
| 311 | sodipodi:role="line" | ||
| 312 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 313 | x="18.532665" | ||
| 314 | y="26.623709" | ||
| 315 | id="tspan6">CONTAINER</tspan></text> | ||
| 316 | <text | ||
| 317 | xml:space="preserve" | ||
| 318 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 319 | x="18.532665" | ||
| 320 | y="19.015348" | ||
| 321 | id="text7"><tspan | ||
| 322 | sodipodi:role="line" | ||
| 323 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 324 | x="18.532665" | ||
| 325 | y="19.015348" | ||
| 326 | id="tspan7">PROGRAMS &</tspan><tspan | ||
| 327 | sodipodi:role="line" | ||
| 328 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 329 | x="18.532665" | ||
| 330 | y="21.132019" | ||
| 331 | id="tspan17">LIBRARIES</tspan></text> | ||
| 332 | <text | ||
| 333 | xml:space="preserve" | ||
| 334 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 335 | x="18.532665" | ||
| 336 | y="11.807091" | ||
| 337 | id="text10"><tspan | ||
| 338 | sodipodi:role="line" | ||
| 339 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 340 | x="18.532665" | ||
| 341 | y="11.807091" | ||
| 342 | id="tspan9"><tspan | ||
| 343 | dx="0.088498212" | ||
| 344 | id="tspan8" | ||
| 345 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583">TARGET</tspan></tspan><tspan | ||
| 346 | sodipodi:role="line" | ||
| 347 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 348 | x="18.532665" | ||
| 349 | y="13.92376" | ||
| 350 | id="tspan10">SOFTWARE</tspan></text> | ||
| 351 | <g | ||
| 352 | id="g11" | ||
| 353 | transform="translate(-5.8033597,-174.95045)" | ||
| 354 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 355 | inkscape:export-xdpi="127.98862" | ||
| 356 | inkscape:export-ydpi="127.98862"> | ||
| 357 | <rect | ||
| 358 | style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 359 | id="rect10" | ||
| 360 | width="50.57568" | ||
| 361 | height="8.4333" | ||
| 362 | x="13.294504" | ||
| 363 | y="223.15991" | ||
| 364 | ry="1.5" /> | ||
| 365 | <text | ||
| 366 | xml:space="preserve" | ||
| 367 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 368 | x="38.437649" | ||
| 369 | y="228.24654" | ||
| 370 | id="text11"><tspan | ||
| 371 | sodipodi:role="line" | ||
| 372 | id="tspan11" | ||
| 373 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 374 | x="38.437649" | ||
| 375 | y="228.24654">HARDWARE</tspan></text> | ||
| 376 | </g> | ||
| 377 | <g | ||
| 378 | id="g16" | ||
| 379 | transform="translate(22.771639,-177.59628)" | ||
| 380 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 381 | inkscape:export-xdpi="127.98862" | ||
| 382 | inkscape:export-ydpi="127.98862"> | ||
| 383 | <rect | ||
| 384 | style="fill:#f9f9f9;stroke:none;stroke-width:0.499999;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 385 | id="rect11" | ||
| 386 | width="22.000685" | ||
| 387 | height="26.315866" | ||
| 388 | x="13.294504" | ||
| 389 | y="184.14406" | ||
| 390 | ry="1.5" /> | ||
| 391 | <text | ||
| 392 | xml:space="preserve" | ||
| 393 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 394 | x="24.336025" | ||
| 395 | y="204.21999" | ||
| 396 | id="text13"><tspan | ||
| 397 | sodipodi:role="line" | ||
| 398 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 399 | x="24.336025" | ||
| 400 | y="204.21999" | ||
| 401 | id="tspan13">CONTAINER</tspan></text> | ||
| 402 | <text | ||
| 403 | xml:space="preserve" | ||
| 404 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 405 | x="24.336025" | ||
| 406 | y="196.61165" | ||
| 407 | id="text14"><tspan | ||
| 408 | sodipodi:role="line" | ||
| 409 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 410 | x="24.336025" | ||
| 411 | y="196.61165" | ||
| 412 | id="tspan14">PROGRAMS &</tspan><tspan | ||
| 413 | sodipodi:role="line" | ||
| 414 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 415 | x="24.336025" | ||
| 416 | y="198.72832" | ||
| 417 | id="tspan18">LIBRARIES</tspan></text> | ||
| 418 | <text | ||
| 419 | xml:space="preserve" | ||
| 420 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 421 | x="24.336025" | ||
| 422 | y="189.40337" | ||
| 423 | id="text16"><tspan | ||
| 424 | sodipodi:role="line" | ||
| 425 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 426 | x="24.336025" | ||
| 427 | y="189.40337" | ||
| 428 | id="tspan15">TARGET</tspan><tspan | ||
| 429 | sodipodi:role="line" | ||
| 430 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 431 | x="24.336025" | ||
| 432 | y="191.52003" | ||
| 433 | id="tspan16">SOFTWARE</tspan></text> | ||
| 434 | </g> | ||
| 435 | </g> | ||
| 436 | </g> | ||
| 437 | <g | ||
| 438 | id="g48182" | ||
| 439 | transform="translate(0,-102.12917)" | ||
| 440 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 441 | inkscape:export-xdpi="127.98862" | ||
| 442 | inkscape:export-ydpi="127.98862" /> | ||
| 443 | <g | ||
| 444 | id="g34" | ||
| 445 | transform="translate(65.674737)"> | ||
| 446 | <g | ||
| 447 | id="g33" | ||
| 448 | transform="translate(69.03002,-0.03980604)"> | ||
| 449 | <rect | ||
| 450 | style="fill:#ececec;stroke:none;stroke-width:0.317673;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 451 | id="rect19" | ||
| 452 | width="65.511665" | ||
| 453 | height="74.960197" | ||
| 454 | x="-0.10821027" | ||
| 455 | y="0.039806042" | ||
| 456 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 457 | inkscape:export-xdpi="127.98862" | ||
| 458 | inkscape:export-ydpi="127.98862" /> | ||
| 459 | <text | ||
| 460 | xml:space="preserve" | ||
| 461 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.82222px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 462 | x="30.965847" | ||
| 463 | y="69.175049" | ||
| 464 | id="text19" | ||
| 465 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 466 | inkscape:export-xdpi="127.98862" | ||
| 467 | inkscape:export-ydpi="127.98862"><tspan | ||
| 468 | sodipodi:role="line" | ||
| 469 | id="tspan19" | ||
| 470 | style="font-style:normal;font-variant:normal;font-weight:800;font-stretch:normal;font-size:2.82222px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Ultra-Bold';text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583" | ||
| 471 | x="30.965847" | ||
| 472 | y="69.175049">UNIKERNELS</tspan></text> | ||
| 473 | <g | ||
| 474 | id="g20" | ||
| 475 | transform="translate(-5.8033597,-177.06712)" | ||
| 476 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 477 | inkscape:export-xdpi="127.98862" | ||
| 478 | inkscape:export-ydpi="127.98862"> | ||
| 479 | <rect | ||
| 480 | style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 481 | id="rect20" | ||
| 482 | width="50.57568" | ||
| 483 | height="8.4333" | ||
| 484 | x="13.294504" | ||
| 485 | y="213.63496" | ||
| 486 | ry="1.5" /> | ||
| 487 | <text | ||
| 488 | xml:space="preserve" | ||
| 489 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 490 | x="38.5317" | ||
| 491 | y="218.72159" | ||
| 492 | id="text20"><tspan | ||
| 493 | sodipodi:role="line" | ||
| 494 | id="tspan20" | ||
| 495 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 496 | x="38.5317" | ||
| 497 | y="218.72159">HYPERVISOR</tspan></text> | ||
| 498 | </g> | ||
| 499 | <rect | ||
| 500 | style="fill:#f9f9f9;stroke:none;stroke-width:0.364235;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 501 | id="rect21" | ||
| 502 | width="22.000685" | ||
| 503 | height="13.965061" | ||
| 504 | x="7.4911447" | ||
| 505 | y="18.898588" | ||
| 506 | ry="0.79600614" /> | ||
| 507 | <text | ||
| 508 | xml:space="preserve" | ||
| 509 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 510 | x="18.532665" | ||
| 511 | y="25.565374" | ||
| 512 | id="text21"><tspan | ||
| 513 | sodipodi:role="line" | ||
| 514 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 515 | x="18.532665" | ||
| 516 | y="25.565374" | ||
| 517 | id="tspan21">UNIKERNEL &</tspan><tspan | ||
| 518 | sodipodi:role="line" | ||
| 519 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 520 | x="18.532665" | ||
| 521 | y="27.682045" | ||
| 522 | id="tspan34">APPLICATION</tspan></text> | ||
| 523 | <g | ||
| 524 | id="g27" | ||
| 525 | transform="translate(-5.8033597,-174.95045)" | ||
| 526 | inkscape:export-filename="/home/m/Vault/projects/mitjafelicijan.com/pid1/unikernels.png" | ||
| 527 | inkscape:export-xdpi="127.98862" | ||
| 528 | inkscape:export-ydpi="127.98862"> | ||
| 529 | <rect | ||
| 530 | style="fill:#f9f9f9;stroke:none;stroke-width:0.429153;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 531 | id="rect26" | ||
| 532 | width="50.57568" | ||
| 533 | height="8.4333" | ||
| 534 | x="13.294504" | ||
| 535 | y="223.15991" | ||
| 536 | ry="1.5" /> | ||
| 537 | <text | ||
| 538 | xml:space="preserve" | ||
| 539 | style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Heavy';text-align:center;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 540 | x="38.437649" | ||
| 541 | y="228.24654" | ||
| 542 | id="text27"><tspan | ||
| 543 | sodipodi:role="line" | ||
| 544 | id="tspan27" | ||
| 545 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.46944px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 546 | x="38.437649" | ||
| 547 | y="228.24654">HARDWARE</tspan></text> | ||
| 548 | </g> | ||
| 549 | <rect | ||
| 550 | style="fill:#f9f9f9;stroke:none;stroke-width:0.364235;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" | ||
| 551 | id="rect27" | ||
| 552 | width="22.000685" | ||
| 553 | height="13.965027" | ||
| 554 | x="36.066143" | ||
| 555 | y="18.898619" | ||
| 556 | ry="0.79600418" /> | ||
| 557 | <text | ||
| 558 | xml:space="preserve" | ||
| 559 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.264583" | ||
| 560 | x="47.107666" | ||
| 561 | y="25.565388" | ||
| 562 | id="text28"><tspan | ||
| 563 | sodipodi:role="line" | ||
| 564 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 565 | x="47.107666" | ||
| 566 | y="25.565388" | ||
| 567 | id="tspan28">UNIKERNEL &</tspan><tspan | ||
| 568 | sodipodi:role="line" | ||
| 569 | style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:2.11667px;line-height:1;font-family:'SF Pro Display';-inkscape-font-specification:'SF Pro Display Bold';text-align:center;text-anchor:middle;fill:#4d4d4d;stroke-width:0.264583" | ||
| 570 | x="47.107666" | ||
| 571 | y="27.682058" | ||
| 572 | id="tspan35">APPLICATION</tspan></text> | ||
| 573 | <text | ||
| 574 | xml:space="preserve" | ||
| 575 | style="font-size:3.175px;line-height:1;text-align:center;text-anchor:middle;fill:#000000;stroke-width:0.264583" | ||
| 576 | x="23.345249" | ||
| 577 | y="25.881119" | ||
| 578 | id="text36"><tspan | ||
| 579 | sodipodi:role="line" | ||
| 580 | id="tspan36" | ||
| 581 | style="stroke-width:0.264583" | ||
| 582 | x="23.757999" | ||
| 583 | y="25.881119"> </tspan></text> | ||
| 584 | </g> | ||
| 585 | </g> | ||
| 586 | </g> | ||
| 587 | </svg> | ||
diff --git a/static/assets/posts/pid1/unikernels.webp b/static/assets/posts/pid1/unikernels.webp new file mode 100644 index 0000000..c823d00 --- /dev/null +++ b/static/assets/posts/pid1/unikernels.webp | |||
| Binary files differ | |||
diff --git a/static/assets/posts/profile-bind-error/error.jpg b/static/assets/posts/profile-bind-error/error.jpg new file mode 100755 index 0000000..c2e4e8f --- /dev/null +++ b/static/assets/posts/profile-bind-error/error.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/python-profiling/kcachegrind.png b/static/assets/posts/python-profiling/kcachegrind.png new file mode 100755 index 0000000..0dc48ab --- /dev/null +++ b/static/assets/posts/python-profiling/kcachegrind.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/python-profiling/profiling-viewer.png b/static/assets/posts/python-profiling/profiling-viewer.png new file mode 100755 index 0000000..a450513 --- /dev/null +++ b/static/assets/posts/python-profiling/profiling-viewer.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/python-profiling/snakeviz.png b/static/assets/posts/python-profiling/snakeviz.png new file mode 100755 index 0000000..5bab395 --- /dev/null +++ b/static/assets/posts/python-profiling/snakeviz.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb b/static/assets/posts/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb new file mode 100755 index 0000000..e2a85c4 --- /dev/null +++ b/static/assets/posts/sentiment-analysis/.ipynb_checkpoints/TF Test-checkpoint.ipynb | |||
| @@ -0,0 +1,588 @@ | |||
| 1 | { | ||
| 2 | "cells": [ | ||
| 3 | { | ||
| 4 | "cell_type": "code", | ||
| 5 | "execution_count": 1, | ||
| 6 | "metadata": {}, | ||
| 7 | "outputs": [ | ||
| 8 | { | ||
| 9 | "name": "stderr", | ||
| 10 | "output_type": "stream", | ||
| 11 | "text": [ | ||
| 12 | "/home/m/.local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:516: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 13 | " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", | ||
| 14 | "/home/m/.local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:517: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 15 | " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", | ||
| 16 | "/home/m/.local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:518: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 17 | " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", | ||
| 18 | "/home/m/.local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:519: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 19 | " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", | ||
| 20 | "/home/m/.local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:520: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 21 | " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", | ||
| 22 | "/home/m/.local/lib/python3.7/site-packages/tensorflow/python/framework/dtypes.py:525: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 23 | " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n" | ||
| 24 | ] | ||
| 25 | }, | ||
| 26 | { | ||
| 27 | "name": "stdout", | ||
| 28 | "output_type": "stream", | ||
| 29 | "text": [ | ||
| 30 | "2.0.0-beta1\n" | ||
| 31 | ] | ||
| 32 | }, | ||
| 33 | { | ||
| 34 | "name": "stderr", | ||
| 35 | "output_type": "stream", | ||
| 36 | "text": [ | ||
| 37 | "/home/m/.local/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:541: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 38 | " _np_qint8 = np.dtype([(\"qint8\", np.int8, 1)])\n", | ||
| 39 | "/home/m/.local/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:542: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 40 | " _np_quint8 = np.dtype([(\"quint8\", np.uint8, 1)])\n", | ||
| 41 | "/home/m/.local/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:543: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 42 | " _np_qint16 = np.dtype([(\"qint16\", np.int16, 1)])\n", | ||
| 43 | "/home/m/.local/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:544: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 44 | " _np_quint16 = np.dtype([(\"quint16\", np.uint16, 1)])\n", | ||
| 45 | "/home/m/.local/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:545: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 46 | " _np_qint32 = np.dtype([(\"qint32\", np.int32, 1)])\n", | ||
| 47 | "/home/m/.local/lib/python3.7/site-packages/tensorboard/compat/tensorflow_stub/dtypes.py:550: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.\n", | ||
| 48 | " np_resource = np.dtype([(\"resource\", np.ubyte, 1)])\n" | ||
| 49 | ] | ||
| 50 | } | ||
| 51 | ], | ||
| 52 | "source": [ | ||
| 53 | "import tensorflow as tf\n", | ||
| 54 | "from tensorflow import keras\n", | ||
| 55 | "\n", | ||
| 56 | "# Helper libraries\n", | ||
| 57 | "import numpy as np\n", | ||
| 58 | "import matplotlib.pyplot as plt\n", | ||
| 59 | "\n", | ||
| 60 | "print(tf.__version__)" | ||
| 61 | ] | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | "cell_type": "code", | ||
| 65 | "execution_count": 2, | ||
| 66 | "metadata": {}, | ||
| 67 | "outputs": [], | ||
| 68 | "source": [ | ||
| 69 | "from numpy import genfromtxt\n", | ||
| 70 | "data = genfromtxt('data.csv', delimiter=',')" | ||
| 71 | ] | ||
| 72 | }, | ||
| 73 | { | ||
| 74 | "cell_type": "code", | ||
| 75 | "execution_count": 3, | ||
| 76 | "metadata": {}, | ||
| 77 | "outputs": [], | ||
| 78 | "source": [ | ||
| 79 | "data_input = data[:,0:3]\n", | ||
| 80 | "data_labels = data[:,3]\n", | ||
| 81 | "\n", | ||
| 82 | "#data_input = np.transpose(data_input)\n", | ||
| 83 | "#data_labels = np.transpose(data_labels)" | ||
| 84 | ] | ||
| 85 | }, | ||
| 86 | { | ||
| 87 | "cell_type": "code", | ||
| 88 | "execution_count": 4, | ||
| 89 | "metadata": {}, | ||
| 90 | "outputs": [ | ||
| 91 | { | ||
| 92 | "name": "stdout", | ||
| 93 | "output_type": "stream", | ||
| 94 | "text": [ | ||
| 95 | "(600, 3)\n", | ||
| 96 | "[1.e-01 1.e+00 3.e+02]\n" | ||
| 97 | ] | ||
| 98 | } | ||
| 99 | ], | ||
| 100 | "source": [ | ||
| 101 | "print(np.shape(data_input))\n", | ||
| 102 | "print(data_input[2])" | ||
| 103 | ] | ||
| 104 | }, | ||
| 105 | { | ||
| 106 | "cell_type": "markdown", | ||
| 107 | "metadata": {}, | ||
| 108 | "source": [ | ||
| 109 | "print(len(data_input))\n", | ||
| 110 | "print(len(data_labels))" | ||
| 111 | ] | ||
| 112 | }, | ||
| 113 | { | ||
| 114 | "cell_type": "code", | ||
| 115 | "execution_count": 5, | ||
| 116 | "metadata": {}, | ||
| 117 | "outputs": [ | ||
| 118 | { | ||
| 119 | "name": "stdout", | ||
| 120 | "output_type": "stream", | ||
| 121 | "text": [ | ||
| 122 | "(500, 3)\n", | ||
| 123 | "(100, 3)\n", | ||
| 124 | "(500,)\n", | ||
| 125 | "(100,)\n" | ||
| 126 | ] | ||
| 127 | } | ||
| 128 | ], | ||
| 129 | "source": [ | ||
| 130 | "data_input_train = data_input[0:500,:]\n", | ||
| 131 | "data_input_test = data_input[500:,:]\n", | ||
| 132 | "\n", | ||
| 133 | "data_labels_train = data_labels[0:500]\n", | ||
| 134 | "data_labels_test = data_labels[500:]\n", | ||
| 135 | "\n", | ||
| 136 | "print(np.shape(data_input_train))\n", | ||
| 137 | "print(np.shape(data_input_test))\n", | ||
| 138 | "\n", | ||
| 139 | "print(np.shape(data_labels_train))\n", | ||
| 140 | "print(np.shape(data_labels_test))" | ||
| 141 | ] | ||
| 142 | }, | ||
| 143 | { | ||
| 144 | "cell_type": "code", | ||
| 145 | "execution_count": 6, | ||
| 146 | "metadata": {}, | ||
| 147 | "outputs": [], | ||
| 148 | "source": [ | ||
| 149 | "model = keras.Sequential([\n", | ||
| 150 | " keras.layers.Dense(128, activation='relu', input_shape=[3]),\n", | ||
| 151 | " keras.layers.Dense(512, activation='relu'),\n", | ||
| 152 | " keras.layers.Dense(512, activation='relu'),\n", | ||
| 153 | " keras.layers.Dense(512, activation='relu'),\n", | ||
| 154 | " keras.layers.Dense(128, activation='relu'),\n", | ||
| 155 | " keras.layers.Dense(1)\n", | ||
| 156 | "])" | ||
| 157 | ] | ||
| 158 | }, | ||
| 159 | { | ||
| 160 | "cell_type": "code", | ||
| 161 | "execution_count": 7, | ||
| 162 | "metadata": {}, | ||
| 163 | "outputs": [], | ||
| 164 | "source": [ | ||
| 165 | "optimizer = tf.keras.optimizers.RMSprop(0.001)\n", | ||
| 166 | "model.compile(loss='mse',\n", | ||
| 167 | " optimizer=optimizer,\n", | ||
| 168 | " metrics=['accuracy'])" | ||
| 169 | ] | ||
| 170 | }, | ||
| 171 | { | ||
| 172 | "cell_type": "code", | ||
| 173 | "execution_count": 8, | ||
| 174 | "metadata": {}, | ||
| 175 | "outputs": [ | ||
| 176 | { | ||
| 177 | "name": "stdout", | ||
| 178 | "output_type": "stream", | ||
| 179 | "text": [ | ||
| 180 | "Train on 500 samples\n", | ||
| 181 | "Epoch 1/100\n", | ||
| 182 | "500/500 [==============================] - 0s 399us/sample - loss: 247.2794 - accuracy: 0.0040\n", | ||
| 183 | "Epoch 2/100\n", | ||
| 184 | "500/500 [==============================] - 0s 121us/sample - loss: 4.2495 - accuracy: 0.0060\n", | ||
| 185 | "Epoch 3/100\n", | ||
| 186 | "500/500 [==============================] - 0s 131us/sample - loss: 1.8787 - accuracy: 0.0040\n", | ||
| 187 | "Epoch 4/100\n", | ||
| 188 | "500/500 [==============================] - 0s 121us/sample - loss: 0.4284 - accuracy: 0.0060\n", | ||
| 189 | "Epoch 5/100\n", | ||
| 190 | "500/500 [==============================] - 0s 107us/sample - loss: 4.7904 - accuracy: 0.0080\n", | ||
| 191 | "Epoch 6/100\n", | ||
| 192 | "500/500 [==============================] - 0s 113us/sample - loss: 0.0819 - accuracy: 0.0040\n", | ||
| 193 | "Epoch 7/100\n", | ||
| 194 | "500/500 [==============================] - 0s 108us/sample - loss: 1.6904 - accuracy: 0.0040\n", | ||
| 195 | "Epoch 8/100\n", | ||
| 196 | "500/500 [==============================] - 0s 116us/sample - loss: 0.1761 - accuracy: 0.0040\n", | ||
| 197 | "Epoch 9/100\n", | ||
| 198 | "500/500 [==============================] - 0s 142us/sample - loss: 0.1135 - accuracy: 0.0040\n", | ||
| 199 | "Epoch 10/100\n", | ||
| 200 | "500/500 [==============================] - 0s 124us/sample - loss: 0.4387 - accuracy: 0.0040\n", | ||
| 201 | "Epoch 11/100\n", | ||
| 202 | "500/500 [==============================] - 0s 112us/sample - loss: 0.0815 - accuracy: 0.0040\n", | ||
| 203 | "Epoch 12/100\n", | ||
| 204 | "500/500 [==============================] - 0s 117us/sample - loss: 0.1725 - accuracy: 0.0040\n", | ||
| 205 | "Epoch 13/100\n", | ||
| 206 | "500/500 [==============================] - 0s 119us/sample - loss: 0.1487 - accuracy: 0.0040\n", | ||
| 207 | "Epoch 14/100\n", | ||
| 208 | "500/500 [==============================] - 0s 111us/sample - loss: 0.0720 - accuracy: 0.0040\n", | ||
| 209 | "Epoch 15/100\n", | ||
| 210 | "500/500 [==============================] - 0s 111us/sample - loss: 0.3110 - accuracy: 0.0040\n", | ||
| 211 | "Epoch 16/100\n", | ||
| 212 | "500/500 [==============================] - 0s 128us/sample - loss: 0.0947 - accuracy: 0.0040\n", | ||
| 213 | "Epoch 17/100\n", | ||
| 214 | "500/500 [==============================] - 0s 133us/sample - loss: 0.0739 - accuracy: 0.0040\n", | ||
| 215 | "Epoch 18/100\n", | ||
| 216 | "500/500 [==============================] - 0s 131us/sample - loss: 0.1353 - accuracy: 0.0060\n", | ||
| 217 | "Epoch 19/100\n", | ||
| 218 | "500/500 [==============================] - 0s 135us/sample - loss: 0.0837 - accuracy: 0.0040\n", | ||
| 219 | "Epoch 20/100\n", | ||
| 220 | "500/500 [==============================] - 0s 130us/sample - loss: 0.0754 - accuracy: 0.0040\n", | ||
| 221 | "Epoch 21/100\n", | ||
| 222 | "500/500 [==============================] - 0s 118us/sample - loss: 0.0840 - accuracy: 0.0040\n", | ||
| 223 | "Epoch 22/100\n", | ||
| 224 | "500/500 [==============================] - 0s 115us/sample - loss: 0.1105 - accuracy: 0.0040\n", | ||
| 225 | "Epoch 23/100\n", | ||
| 226 | "500/500 [==============================] - 0s 116us/sample - loss: 0.0651 - accuracy: 0.0040\n", | ||
| 227 | "Epoch 24/100\n", | ||
| 228 | "500/500 [==============================] - 0s 109us/sample - loss: 0.0615 - accuracy: 0.0040\n", | ||
| 229 | "Epoch 25/100\n", | ||
| 230 | "500/500 [==============================] - 0s 118us/sample - loss: 0.0656 - accuracy: 0.0040\n", | ||
| 231 | "Epoch 26/100\n", | ||
| 232 | "500/500 [==============================] - 0s 113us/sample - loss: 0.0695 - accuracy: 0.0040\n", | ||
| 233 | "Epoch 27/100\n", | ||
| 234 | "500/500 [==============================] - 0s 116us/sample - loss: 0.0585 - accuracy: 0.0040\n", | ||
| 235 | "Epoch 28/100\n", | ||
| 236 | "500/500 [==============================] - 0s 118us/sample - loss: 0.1300 - accuracy: 0.0040\n", | ||
| 237 | "Epoch 29/100\n", | ||
| 238 | "500/500 [==============================] - 0s 112us/sample - loss: 0.0567 - accuracy: 0.0040\n", | ||
| 239 | "Epoch 30/100\n", | ||
| 240 | "500/500 [==============================] - 0s 137us/sample - loss: 0.0647 - accuracy: 0.0040\n", | ||
| 241 | "Epoch 31/100\n", | ||
| 242 | "500/500 [==============================] - 0s 130us/sample - loss: 0.0559 - accuracy: 0.0040\n", | ||
| 243 | "Epoch 32/100\n", | ||
| 244 | "500/500 [==============================] - 0s 130us/sample - loss: 0.0576 - accuracy: 0.0040\n", | ||
| 245 | "Epoch 33/100\n", | ||
| 246 | "500/500 [==============================] - 0s 128us/sample - loss: 0.0578 - accuracy: 0.0040\n", | ||
| 247 | "Epoch 34/100\n", | ||
| 248 | "500/500 [==============================] - 0s 130us/sample - loss: 0.0512 - accuracy: 0.0040\n", | ||
| 249 | "Epoch 35/100\n", | ||
| 250 | "500/500 [==============================] - 0s 114us/sample - loss: 0.0601 - accuracy: 0.0040\n", | ||
| 251 | "Epoch 36/100\n", | ||
| 252 | "500/500 [==============================] - 0s 111us/sample - loss: 0.0531 - accuracy: 0.0040\n", | ||
| 253 | "Epoch 37/100\n", | ||
| 254 | "500/500 [==============================] - 0s 130us/sample - loss: 0.0532 - accuracy: 0.0040\n", | ||
| 255 | "Epoch 38/100\n", | ||
| 256 | "500/500 [==============================] - 0s 131us/sample - loss: 0.0480 - accuracy: 0.0040\n", | ||
| 257 | "Epoch 39/100\n", | ||
| 258 | "500/500 [==============================] - 0s 136us/sample - loss: 0.0503 - accuracy: 0.0040\n", | ||
| 259 | "Epoch 40/100\n", | ||
| 260 | "500/500 [==============================] - 0s 134us/sample - loss: 0.0468 - accuracy: 0.0040\n", | ||
| 261 | "Epoch 41/100\n", | ||
| 262 | "500/500 [==============================] - 0s 115us/sample - loss: 0.0509 - accuracy: 0.0040\n", | ||
| 263 | "Epoch 42/100\n", | ||
| 264 | "500/500 [==============================] - 0s 109us/sample - loss: 0.0453 - accuracy: 0.0040\n", | ||
| 265 | "Epoch 43/100\n", | ||
| 266 | "500/500 [==============================] - 0s 111us/sample - loss: 0.0484 - accuracy: 0.0040\n", | ||
| 267 | "Epoch 44/100\n", | ||
| 268 | "500/500 [==============================] - 0s 104us/sample - loss: 0.0458 - accuracy: 0.0040\n", | ||
| 269 | "Epoch 45/100\n", | ||
| 270 | "500/500 [==============================] - 0s 110us/sample - loss: 0.0481 - accuracy: 0.0040\n", | ||
| 271 | "Epoch 46/100\n", | ||
| 272 | "500/500 [==============================] - 0s 114us/sample - loss: 0.0468 - accuracy: 0.0060\n", | ||
| 273 | "Epoch 47/100\n", | ||
| 274 | "500/500 [==============================] - 0s 124us/sample - loss: 0.0473 - accuracy: 0.0060\n", | ||
| 275 | "Epoch 48/100\n", | ||
| 276 | "500/500 [==============================] - 0s 137us/sample - loss: 0.0455 - accuracy: 0.0040\n", | ||
| 277 | "Epoch 49/100\n", | ||
| 278 | "500/500 [==============================] - 0s 125us/sample - loss: 0.0431 - accuracy: 0.0060\n", | ||
| 279 | "Epoch 50/100\n", | ||
| 280 | "500/500 [==============================] - 0s 132us/sample - loss: 0.0432 - accuracy: 0.0060\n", | ||
| 281 | "Epoch 51/100\n", | ||
| 282 | "500/500 [==============================] - 0s 116us/sample - loss: 0.0484 - accuracy: 0.0060\n", | ||
| 283 | "Epoch 52/100\n", | ||
| 284 | "500/500 [==============================] - 0s 112us/sample - loss: 0.0482 - accuracy: 0.0040\n", | ||
| 285 | "Epoch 53/100\n", | ||
| 286 | "500/500 [==============================] - 0s 117us/sample - loss: 0.0444 - accuracy: 0.0060\n", | ||
| 287 | "Epoch 54/100\n", | ||
| 288 | "500/500 [==============================] - 0s 109us/sample - loss: 0.0469 - accuracy: 0.0060\n", | ||
| 289 | "Epoch 55/100\n", | ||
| 290 | "500/500 [==============================] - 0s 106us/sample - loss: 0.0427 - accuracy: 0.0040\n", | ||
| 291 | "Epoch 56/100\n", | ||
| 292 | "500/500 [==============================] - 0s 110us/sample - loss: 0.0433 - accuracy: 0.0040\n", | ||
| 293 | "Epoch 57/100\n", | ||
| 294 | "500/500 [==============================] - 0s 102us/sample - loss: 0.0437 - accuracy: 0.0060\n", | ||
| 295 | "Epoch 58/100\n", | ||
| 296 | "500/500 [==============================] - 0s 117us/sample - loss: 0.0425 - accuracy: 0.0040\n", | ||
| 297 | "Epoch 59/100\n", | ||
| 298 | "500/500 [==============================] - 0s 105us/sample - loss: 0.0418 - accuracy: 0.0040\n", | ||
| 299 | "Epoch 60/100\n", | ||
| 300 | "500/500 [==============================] - 0s 109us/sample - loss: 0.0397 - accuracy: 0.0040\n", | ||
| 301 | "Epoch 61/100\n", | ||
| 302 | "500/500 [==============================] - 0s 119us/sample - loss: 0.0507 - accuracy: 0.0040\n", | ||
| 303 | "Epoch 62/100\n", | ||
| 304 | "500/500 [==============================] - 0s 112us/sample - loss: 0.0402 - accuracy: 0.0060\n", | ||
| 305 | "Epoch 63/100\n", | ||
| 306 | "500/500 [==============================] - 0s 133us/sample - loss: 0.0397 - accuracy: 0.0040\n", | ||
| 307 | "Epoch 64/100\n", | ||
| 308 | "500/500 [==============================] - 0s 132us/sample - loss: 0.0427 - accuracy: 0.0060\n", | ||
| 309 | "Epoch 65/100\n", | ||
| 310 | "500/500 [==============================] - 0s 138us/sample - loss: 0.0398 - accuracy: 0.0040\n", | ||
| 311 | "Epoch 66/100\n", | ||
| 312 | "500/500 [==============================] - 0s 145us/sample - loss: 0.0375 - accuracy: 0.0060\n", | ||
| 313 | "Epoch 67/100\n", | ||
| 314 | "500/500 [==============================] - 0s 138us/sample - loss: 0.0402 - accuracy: 0.0060\n", | ||
| 315 | "Epoch 68/100\n", | ||
| 316 | "500/500 [==============================] - 0s 132us/sample - loss: 0.0388 - accuracy: 0.0080\n", | ||
| 317 | "Epoch 69/100\n", | ||
| 318 | "500/500 [==============================] - 0s 115us/sample - loss: 0.0375 - accuracy: 0.0080\n", | ||
| 319 | "Epoch 70/100\n", | ||
| 320 | "500/500 [==============================] - 0s 113us/sample - loss: 0.0384 - accuracy: 0.0040\n", | ||
| 321 | "Epoch 71/100\n", | ||
| 322 | "500/500 [==============================] - 0s 109us/sample - loss: 0.0360 - accuracy: 0.0080\n", | ||
| 323 | "Epoch 72/100\n", | ||
| 324 | "500/500 [==============================] - 0s 111us/sample - loss: 0.0350 - accuracy: 0.0080\n", | ||
| 325 | "Epoch 73/100\n", | ||
| 326 | "500/500 [==============================] - 0s 118us/sample - loss: 0.0370 - accuracy: 0.0060\n", | ||
| 327 | "Epoch 74/100\n", | ||
| 328 | "500/500 [==============================] - 0s 95us/sample - loss: 0.0354 - accuracy: 0.0080\n", | ||
| 329 | "Epoch 75/100\n", | ||
| 330 | "500/500 [==============================] - 0s 102us/sample - loss: 0.0376 - accuracy: 0.0060\n", | ||
| 331 | "Epoch 76/100\n", | ||
| 332 | "500/500 [==============================] - 0s 106us/sample - loss: 0.0371 - accuracy: 0.0080\n", | ||
| 333 | "Epoch 77/100\n", | ||
| 334 | "500/500 [==============================] - 0s 100us/sample - loss: 0.0369 - accuracy: 0.0060\n", | ||
| 335 | "Epoch 78/100\n" | ||
| 336 | ] | ||
| 337 | }, | ||
| 338 | { | ||
| 339 | "name": "stdout", | ||
| 340 | "output_type": "stream", | ||
| 341 | "text": [ | ||
| 342 | "500/500 [==============================] - 0s 98us/sample - loss: 0.0315 - accuracy: 0.0060\n", | ||
| 343 | "Epoch 79/100\n", | ||
| 344 | "500/500 [==============================] - 0s 97us/sample - loss: 0.0355 - accuracy: 0.0060\n", | ||
| 345 | "Epoch 80/100\n", | ||
| 346 | "500/500 [==============================] - 0s 100us/sample - loss: 0.0278 - accuracy: 0.0080\n", | ||
| 347 | "Epoch 81/100\n", | ||
| 348 | "500/500 [==============================] - 0s 99us/sample - loss: 0.0320 - accuracy: 0.0080\n", | ||
| 349 | "Epoch 82/100\n", | ||
| 350 | "500/500 [==============================] - 0s 99us/sample - loss: 0.0321 - accuracy: 0.0080\n", | ||
| 351 | "Epoch 83/100\n", | ||
| 352 | "500/500 [==============================] - 0s 94us/sample - loss: 0.0332 - accuracy: 0.0060\n", | ||
| 353 | "Epoch 84/100\n", | ||
| 354 | "500/500 [==============================] - 0s 106us/sample - loss: 0.0317 - accuracy: 0.0060\n", | ||
| 355 | "Epoch 85/100\n", | ||
| 356 | "500/500 [==============================] - 0s 103us/sample - loss: 0.0293 - accuracy: 0.0080\n", | ||
| 357 | "Epoch 86/100\n", | ||
| 358 | "500/500 [==============================] - 0s 107us/sample - loss: 0.0304 - accuracy: 0.0060\n", | ||
| 359 | "Epoch 87/100\n", | ||
| 360 | "500/500 [==============================] - 0s 101us/sample - loss: 0.0327 - accuracy: 0.0040\n", | ||
| 361 | "Epoch 88/100\n", | ||
| 362 | "500/500 [==============================] - 0s 100us/sample - loss: 0.0290 - accuracy: 0.0080\n", | ||
| 363 | "Epoch 89/100\n", | ||
| 364 | "500/500 [==============================] - 0s 123us/sample - loss: 0.0293 - accuracy: 0.0060\n", | ||
| 365 | "Epoch 90/100\n", | ||
| 366 | "500/500 [==============================] - 0s 104us/sample - loss: 0.0246 - accuracy: 0.0060\n", | ||
| 367 | "Epoch 91/100\n", | ||
| 368 | "500/500 [==============================] - 0s 124us/sample - loss: 0.0303 - accuracy: 0.0060\n", | ||
| 369 | "Epoch 92/100\n", | ||
| 370 | "500/500 [==============================] - 0s 129us/sample - loss: 0.0376 - accuracy: 0.0080\n", | ||
| 371 | "Epoch 93/100\n", | ||
| 372 | "500/500 [==============================] - 0s 122us/sample - loss: 0.0264 - accuracy: 0.0080\n", | ||
| 373 | "Epoch 94/100\n", | ||
| 374 | "500/500 [==============================] - 0s 102us/sample - loss: 0.0265 - accuracy: 0.0080\n", | ||
| 375 | "Epoch 95/100\n", | ||
| 376 | "500/500 [==============================] - 0s 108us/sample - loss: 0.0291 - accuracy: 0.0080\n", | ||
| 377 | "Epoch 96/100\n", | ||
| 378 | "500/500 [==============================] - 0s 101us/sample - loss: 0.0314 - accuracy: 0.0080\n", | ||
| 379 | "Epoch 97/100\n", | ||
| 380 | "500/500 [==============================] - 0s 95us/sample - loss: 0.0257 - accuracy: 0.0060\n", | ||
| 381 | "Epoch 98/100\n", | ||
| 382 | "500/500 [==============================] - 0s 100us/sample - loss: 0.0248 - accuracy: 0.0080\n", | ||
| 383 | "Epoch 99/100\n", | ||
| 384 | "500/500 [==============================] - 0s 94us/sample - loss: 0.0250 - accuracy: 0.0040\n", | ||
| 385 | "Epoch 100/100\n", | ||
| 386 | "500/500 [==============================] - 0s 106us/sample - loss: 0.0312 - accuracy: 0.0060\n" | ||
| 387 | ] | ||
| 388 | }, | ||
| 389 | { | ||
| 390 | "data": { | ||
| 391 | "text/plain": [ | ||
| 392 | "<tensorflow.python.keras.callbacks.History at 0x7f55a3853f60>" | ||
| 393 | ] | ||
| 394 | }, | ||
| 395 | "execution_count": 8, | ||
| 396 | "metadata": {}, | ||
| 397 | "output_type": "execute_result" | ||
| 398 | } | ||
| 399 | ], | ||
| 400 | "source": [ | ||
| 401 | "#model.fit(data_input_train, data_labels_train, validation_data=(data_input_test, data_labels_test), epochs=100)\n", | ||
| 402 | "model.fit(data_input_train, data_labels_train, epochs=100)" | ||
| 403 | ] | ||
| 404 | }, | ||
| 405 | { | ||
| 406 | "cell_type": "code", | ||
| 407 | "execution_count": 9, | ||
| 408 | "metadata": {}, | ||
| 409 | "outputs": [ | ||
| 410 | { | ||
| 411 | "name": "stdout", | ||
| 412 | "output_type": "stream", | ||
| 413 | "text": [ | ||
| 414 | "100/100 - 0s - loss: 0.0470 - accuracy: 0.0100\n", | ||
| 415 | "\n", | ||
| 416 | "Test accuracy: 0.01\n" | ||
| 417 | ] | ||
| 418 | } | ||
| 419 | ], | ||
| 420 | "source": [ | ||
| 421 | "test_loss, test_acc = model.evaluate(data_input_test, data_labels_test, verbose=2)\n", | ||
| 422 | "\n", | ||
| 423 | "print('\\nTest accuracy:', test_acc)" | ||
| 424 | ] | ||
| 425 | }, | ||
| 426 | { | ||
| 427 | "cell_type": "code", | ||
| 428 | "execution_count": 10, | ||
| 429 | "metadata": {}, | ||
| 430 | "outputs": [ | ||
| 431 | { | ||
| 432 | "name": "stdout", | ||
| 433 | "output_type": "stream", | ||
| 434 | "text": [ | ||
| 435 | "[[0.3141548]]\n" | ||
| 436 | ] | ||
| 437 | } | ||
| 438 | ], | ||
| 439 | "source": [ | ||
| 440 | "input = np.array([0.46,2,136])\n", | ||
| 441 | "input.shape = (1,3)\n", | ||
| 442 | "\n", | ||
| 443 | "prediction = model.predict(input)\n", | ||
| 444 | "print(prediction)" | ||
| 445 | ] | ||
| 446 | }, | ||
| 447 | { | ||
| 448 | "cell_type": "code", | ||
| 449 | "execution_count": 11, | ||
| 450 | "metadata": {}, | ||
| 451 | "outputs": [], | ||
| 452 | "source": [ | ||
| 453 | "predictions = model.predict(data_input_test)" | ||
| 454 | ] | ||
| 455 | }, | ||
| 456 | { | ||
| 457 | "cell_type": "code", | ||
| 458 | "execution_count": 12, | ||
| 459 | "metadata": {}, | ||
| 460 | "outputs": [], | ||
| 461 | "source": [ | ||
| 462 | "%matplotlib qt \n", | ||
| 463 | "plt.plot(predictions)\n", | ||
| 464 | "plt.plot(data_labels_test, 'r')\n", | ||
| 465 | "plt.show()" | ||
| 466 | ] | ||
| 467 | }, | ||
| 468 | { | ||
| 469 | "cell_type": "code", | ||
| 470 | "execution_count": 204, | ||
| 471 | "metadata": {}, | ||
| 472 | "outputs": [], | ||
| 473 | "source": [ | ||
| 474 | "%matplotlib qt\n", | ||
| 475 | "a = data_labels_test - predictions\n", | ||
| 476 | "plt.plot(a[0])\n", | ||
| 477 | "plt.show()" | ||
| 478 | ] | ||
| 479 | }, | ||
| 480 | { | ||
| 481 | "cell_type": "code", | ||
| 482 | "execution_count": 207, | ||
| 483 | "metadata": {}, | ||
| 484 | "outputs": [], | ||
| 485 | "source": [ | ||
| 486 | "%matplotlib qt\n", | ||
| 487 | "a = data_labels_test - predictions\n", | ||
| 488 | "plt.plot(predictions)\n", | ||
| 489 | "plt.plot(data_labels_test, 'r')\n", | ||
| 490 | "plt.plot(a[0], 'g')\n", | ||
| 491 | "plt.show()" | ||
| 492 | ] | ||
| 493 | }, | ||
| 494 | { | ||
| 495 | "cell_type": "code", | ||
| 496 | "execution_count": 180, | ||
| 497 | "metadata": {}, | ||
| 498 | "outputs": [ | ||
| 499 | { | ||
| 500 | "data": { | ||
| 501 | "text/plain": [ | ||
| 502 | "-0.08489150602276586" | ||
| 503 | ] | ||
| 504 | }, | ||
| 505 | "execution_count": 180, | ||
| 506 | "metadata": {}, | ||
| 507 | "output_type": "execute_result" | ||
| 508 | } | ||
| 509 | ], | ||
| 510 | "source": [ | ||
| 511 | "np.average(a[0])" | ||
| 512 | ] | ||
| 513 | }, | ||
| 514 | { | ||
| 515 | "cell_type": "code", | ||
| 516 | "execution_count": 182, | ||
| 517 | "metadata": {}, | ||
| 518 | "outputs": [ | ||
| 519 | { | ||
| 520 | "name": "stdout", | ||
| 521 | "output_type": "stream", | ||
| 522 | "text": [ | ||
| 523 | "Model: \"sequential_13\"\n", | ||
| 524 | "_________________________________________________________________\n", | ||
| 525 | "Layer (type) Output Shape Param # \n", | ||
| 526 | "=================================================================\n", | ||
| 527 | "dense_38 (Dense) (None, 128) 512 \n", | ||
| 528 | "_________________________________________________________________\n", | ||
| 529 | "dense_39 (Dense) (None, 512) 66048 \n", | ||
| 530 | "_________________________________________________________________\n", | ||
| 531 | "dense_40 (Dense) (None, 512) 262656 \n", | ||
| 532 | "_________________________________________________________________\n", | ||
| 533 | "dense_41 (Dense) (None, 512) 262656 \n", | ||
| 534 | "_________________________________________________________________\n", | ||
| 535 | "dense_42 (Dense) (None, 128) 65664 \n", | ||
| 536 | "_________________________________________________________________\n", | ||
| 537 | "dense_43 (Dense) (None, 1) 129 \n", | ||
| 538 | "=================================================================\n", | ||
| 539 | "Total params: 657,665\n", | ||
| 540 | "Trainable params: 657,665\n", | ||
| 541 | "Non-trainable params: 0\n", | ||
| 542 | "_________________________________________________________________\n" | ||
| 543 | ] | ||
| 544 | } | ||
| 545 | ], | ||
| 546 | "source": [ | ||
| 547 | "model.summary()" | ||
| 548 | ] | ||
| 549 | }, | ||
| 550 | { | ||
| 551 | "cell_type": "code", | ||
| 552 | "execution_count": 183, | ||
| 553 | "metadata": {}, | ||
| 554 | "outputs": [], | ||
| 555 | "source": [ | ||
| 556 | "model.save('my_model.h5')" | ||
| 557 | ] | ||
| 558 | }, | ||
| 559 | { | ||
| 560 | "cell_type": "code", | ||
| 561 | "execution_count": null, | ||
| 562 | "metadata": {}, | ||
| 563 | "outputs": [], | ||
| 564 | "source": [] | ||
| 565 | } | ||
| 566 | ], | ||
| 567 | "metadata": { | ||
| 568 | "kernelspec": { | ||
| 569 | "display_name": "Python 3", | ||
| 570 | "language": "python", | ||
| 571 | "name": "python3" | ||
| 572 | }, | ||
| 573 | "language_info": { | ||
| 574 | "codemirror_mode": { | ||
| 575 | "name": "ipython", | ||
| 576 | "version": 3 | ||
| 577 | }, | ||
| 578 | "file_extension": ".py", | ||
| 579 | "mimetype": "text/x-python", | ||
| 580 | "name": "python", | ||
| 581 | "nbconvert_exporter": "python", | ||
| 582 | "pygments_lexer": "ipython3", | ||
| 583 | "version": "3.7.3" | ||
| 584 | } | ||
| 585 | }, | ||
| 586 | "nbformat": 4, | ||
| 587 | "nbformat_minor": 2 | ||
| 588 | } | ||
diff --git a/static/assets/posts/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb b/static/assets/posts/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb new file mode 100755 index 0000000..2c0934c --- /dev/null +++ b/static/assets/posts/sentiment-analysis/.ipynb_checkpoints/sentiment-analysis-checkpoint.ipynb | |||
| @@ -0,0 +1,170 @@ | |||
| 1 | { | ||
| 2 | "cells": [ | ||
| 3 | { | ||
| 4 | "cell_type": "markdown", | ||
| 5 | "metadata": {}, | ||
| 6 | "source": [ | ||
| 7 | "# Sentiment analysis of Guardian World News articles" | ||
| 8 | ] | ||
| 9 | }, | ||
| 10 | { | ||
| 11 | "cell_type": "markdown", | ||
| 12 | "metadata": {}, | ||
| 13 | "source": [ | ||
| 14 | "## Get articles from a website" | ||
| 15 | ] | ||
| 16 | }, | ||
| 17 | { | ||
| 18 | "cell_type": "markdown", | ||
| 19 | "metadata": {}, | ||
| 20 | "source": [ | ||
| 21 | "### Install rss parser dependency" | ||
| 22 | ] | ||
| 23 | }, | ||
| 24 | { | ||
| 25 | "cell_type": "code", | ||
| 26 | "execution_count": null, | ||
| 27 | "metadata": {}, | ||
| 28 | "outputs": [], | ||
| 29 | "source": [ | ||
| 30 | "!pip3 install feedparser" | ||
| 31 | ] | ||
| 32 | }, | ||
| 33 | { | ||
| 34 | "cell_type": "markdown", | ||
| 35 | "metadata": {}, | ||
| 36 | "source": [ | ||
| 37 | "### Parsing RSS feed for world news" | ||
| 38 | ] | ||
| 39 | }, | ||
| 40 | { | ||
| 41 | "cell_type": "code", | ||
| 42 | "execution_count": null, | ||
| 43 | "metadata": {}, | ||
| 44 | "outputs": [], | ||
| 45 | "source": [ | ||
| 46 | "import feedparser\n", | ||
| 47 | "feed_url = \"https://www.theguardian.com/world/rss\"\n", | ||
| 48 | "feed = feedparser.parse(feed_url)" | ||
| 49 | ] | ||
| 50 | }, | ||
| 51 | { | ||
| 52 | "cell_type": "code", | ||
| 53 | "execution_count": null, | ||
| 54 | "metadata": {}, | ||
| 55 | "outputs": [], | ||
| 56 | "source": [ | ||
| 57 | "import re\n", | ||
| 58 | "for item in feed.entries:\n", | ||
| 59 | " # sanitize html\n", | ||
| 60 | " item.description = re.sub('<[^<]+?>', '', item.description)" | ||
| 61 | ] | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | "cell_type": "markdown", | ||
| 65 | "metadata": {}, | ||
| 66 | "source": [ | ||
| 67 | "### Install Vader Sentiment library and perform sentiment analysis" | ||
| 68 | ] | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | "cell_type": "code", | ||
| 72 | "execution_count": null, | ||
| 73 | "metadata": {}, | ||
| 74 | "outputs": [], | ||
| 75 | "source": [ | ||
| 76 | "!pip3 install vaderSentiment" | ||
| 77 | ] | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | "cell_type": "code", | ||
| 81 | "execution_count": null, | ||
| 82 | "metadata": {}, | ||
| 83 | "outputs": [], | ||
| 84 | "source": [ | ||
| 85 | "from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer\n", | ||
| 86 | "analyser = SentimentIntensityAnalyzer()" | ||
| 87 | ] | ||
| 88 | }, | ||
| 89 | { | ||
| 90 | "cell_type": "code", | ||
| 91 | "execution_count": null, | ||
| 92 | "metadata": {}, | ||
| 93 | "outputs": [], | ||
| 94 | "source": [ | ||
| 95 | "sentiment_results = []\n", | ||
| 96 | "for item in feed.entries:\n", | ||
| 97 | " sentiment_title = analyser.polarity_scores(item.title)\n", | ||
| 98 | " sentiment_description = analyser.polarity_scores(item.description)\n", | ||
| 99 | " sentiment_results.append([sentiment_title['compound'], sentiment_description['compound']])" | ||
| 100 | ] | ||
| 101 | }, | ||
| 102 | { | ||
| 103 | "cell_type": "markdown", | ||
| 104 | "metadata": {}, | ||
| 105 | "source": [ | ||
| 106 | "### Install Matplotlib and visualize compound score" | ||
| 107 | ] | ||
| 108 | }, | ||
| 109 | { | ||
| 110 | "cell_type": "code", | ||
| 111 | "execution_count": null, | ||
| 112 | "metadata": {}, | ||
| 113 | "outputs": [], | ||
| 114 | "source": [ | ||
| 115 | "!pip3 install matplotlib" | ||
| 116 | ] | ||
| 117 | }, | ||
| 118 | { | ||
| 119 | "cell_type": "code", | ||
| 120 | "execution_count": null, | ||
| 121 | "metadata": {}, | ||
| 122 | "outputs": [], | ||
| 123 | "source": [ | ||
| 124 | "import matplotlib.pyplot as plt" | ||
| 125 | ] | ||
| 126 | }, | ||
| 127 | { | ||
| 128 | "cell_type": "code", | ||
| 129 | "execution_count": null, | ||
| 130 | "metadata": {}, | ||
| 131 | "outputs": [], | ||
| 132 | "source": [ | ||
| 133 | "%matplotlib inline\n", | ||
| 134 | "plt.rcParams['figure.figsize'] = (15, 3)\n", | ||
| 135 | "plt.plot(sentiment_results, drawstyle='steps')\n", | ||
| 136 | "plt.title('Sentiment analysis relationship between title and description (Guardian World News)')\n", | ||
| 137 | "plt.legend(['title', 'description'])\n", | ||
| 138 | "plt.show()" | ||
| 139 | ] | ||
| 140 | }, | ||
| 141 | { | ||
| 142 | "cell_type": "code", | ||
| 143 | "execution_count": null, | ||
| 144 | "metadata": {}, | ||
| 145 | "outputs": [], | ||
| 146 | "source": [] | ||
| 147 | } | ||
| 148 | ], | ||
| 149 | "metadata": { | ||
| 150 | "kernelspec": { | ||
| 151 | "display_name": "Python 3", | ||
| 152 | "language": "python", | ||
| 153 | "name": "python3" | ||
| 154 | }, | ||
| 155 | "language_info": { | ||
| 156 | "codemirror_mode": { | ||
| 157 | "name": "ipython", | ||
| 158 | "version": 3 | ||
| 159 | }, | ||
| 160 | "file_extension": ".py", | ||
| 161 | "mimetype": "text/x-python", | ||
| 162 | "name": "python", | ||
| 163 | "nbconvert_exporter": "python", | ||
| 164 | "pygments_lexer": "ipython3", | ||
| 165 | "version": "3.7.3" | ||
| 166 | } | ||
| 167 | }, | ||
| 168 | "nbformat": 4, | ||
| 169 | "nbformat_minor": 4 | ||
| 170 | } | ||
diff --git a/static/assets/posts/sentiment-analysis/guardian-sa-title-desc-relationship.png b/static/assets/posts/sentiment-analysis/guardian-sa-title-desc-relationship.png new file mode 100755 index 0000000..7195bbf --- /dev/null +++ b/static/assets/posts/sentiment-analysis/guardian-sa-title-desc-relationship.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/sentiment-analysis/sentiment-analysis.ipynb b/static/assets/posts/sentiment-analysis/sentiment-analysis.ipynb new file mode 100755 index 0000000..2c0934c --- /dev/null +++ b/static/assets/posts/sentiment-analysis/sentiment-analysis.ipynb | |||
| @@ -0,0 +1,170 @@ | |||
| 1 | { | ||
| 2 | "cells": [ | ||
| 3 | { | ||
| 4 | "cell_type": "markdown", | ||
| 5 | "metadata": {}, | ||
| 6 | "source": [ | ||
| 7 | "# Sentiment analysis of Guardian World News articles" | ||
| 8 | ] | ||
| 9 | }, | ||
| 10 | { | ||
| 11 | "cell_type": "markdown", | ||
| 12 | "metadata": {}, | ||
| 13 | "source": [ | ||
| 14 | "## Get articles from a website" | ||
| 15 | ] | ||
| 16 | }, | ||
| 17 | { | ||
| 18 | "cell_type": "markdown", | ||
| 19 | "metadata": {}, | ||
| 20 | "source": [ | ||
| 21 | "### Install rss parser dependency" | ||
| 22 | ] | ||
| 23 | }, | ||
| 24 | { | ||
| 25 | "cell_type": "code", | ||
| 26 | "execution_count": null, | ||
| 27 | "metadata": {}, | ||
| 28 | "outputs": [], | ||
| 29 | "source": [ | ||
| 30 | "!pip3 install feedparser" | ||
| 31 | ] | ||
| 32 | }, | ||
| 33 | { | ||
| 34 | "cell_type": "markdown", | ||
| 35 | "metadata": {}, | ||
| 36 | "source": [ | ||
| 37 | "### Parsing RSS feed for world news" | ||
| 38 | ] | ||
| 39 | }, | ||
| 40 | { | ||
| 41 | "cell_type": "code", | ||
| 42 | "execution_count": null, | ||
| 43 | "metadata": {}, | ||
| 44 | "outputs": [], | ||
| 45 | "source": [ | ||
| 46 | "import feedparser\n", | ||
| 47 | "feed_url = \"https://www.theguardian.com/world/rss\"\n", | ||
| 48 | "feed = feedparser.parse(feed_url)" | ||
| 49 | ] | ||
| 50 | }, | ||
| 51 | { | ||
| 52 | "cell_type": "code", | ||
| 53 | "execution_count": null, | ||
| 54 | "metadata": {}, | ||
| 55 | "outputs": [], | ||
| 56 | "source": [ | ||
| 57 | "import re\n", | ||
| 58 | "for item in feed.entries:\n", | ||
| 59 | " # sanitize html\n", | ||
| 60 | " item.description = re.sub('<[^<]+?>', '', item.description)" | ||
| 61 | ] | ||
| 62 | }, | ||
| 63 | { | ||
| 64 | "cell_type": "markdown", | ||
| 65 | "metadata": {}, | ||
| 66 | "source": [ | ||
| 67 | "### Install Vader Sentiment library and perform sentiment analysis" | ||
| 68 | ] | ||
| 69 | }, | ||
| 70 | { | ||
| 71 | "cell_type": "code", | ||
| 72 | "execution_count": null, | ||
| 73 | "metadata": {}, | ||
| 74 | "outputs": [], | ||
| 75 | "source": [ | ||
| 76 | "!pip3 install vaderSentiment" | ||
| 77 | ] | ||
| 78 | }, | ||
| 79 | { | ||
| 80 | "cell_type": "code", | ||
| 81 | "execution_count": null, | ||
| 82 | "metadata": {}, | ||
| 83 | "outputs": [], | ||
| 84 | "source": [ | ||
| 85 | "from vaderSentiment.vaderSentiment import SentimentIntensityAnalyzer\n", | ||
| 86 | "analyser = SentimentIntensityAnalyzer()" | ||
| 87 | ] | ||
| 88 | }, | ||
| 89 | { | ||
| 90 | "cell_type": "code", | ||
| 91 | "execution_count": null, | ||
| 92 | "metadata": {}, | ||
| 93 | "outputs": [], | ||
| 94 | "source": [ | ||
| 95 | "sentiment_results = []\n", | ||
| 96 | "for item in feed.entries:\n", | ||
| 97 | " sentiment_title = analyser.polarity_scores(item.title)\n", | ||
| 98 | " sentiment_description = analyser.polarity_scores(item.description)\n", | ||
| 99 | " sentiment_results.append([sentiment_title['compound'], sentiment_description['compound']])" | ||
| 100 | ] | ||
| 101 | }, | ||
| 102 | { | ||
| 103 | "cell_type": "markdown", | ||
| 104 | "metadata": {}, | ||
| 105 | "source": [ | ||
| 106 | "### Install Matplotlib and visualize compound score" | ||
| 107 | ] | ||
| 108 | }, | ||
| 109 | { | ||
| 110 | "cell_type": "code", | ||
| 111 | "execution_count": null, | ||
| 112 | "metadata": {}, | ||
| 113 | "outputs": [], | ||
| 114 | "source": [ | ||
| 115 | "!pip3 install matplotlib" | ||
| 116 | ] | ||
| 117 | }, | ||
| 118 | { | ||
| 119 | "cell_type": "code", | ||
| 120 | "execution_count": null, | ||
| 121 | "metadata": {}, | ||
| 122 | "outputs": [], | ||
| 123 | "source": [ | ||
| 124 | "import matplotlib.pyplot as plt" | ||
| 125 | ] | ||
| 126 | }, | ||
| 127 | { | ||
| 128 | "cell_type": "code", | ||
| 129 | "execution_count": null, | ||
| 130 | "metadata": {}, | ||
| 131 | "outputs": [], | ||
| 132 | "source": [ | ||
| 133 | "%matplotlib inline\n", | ||
| 134 | "plt.rcParams['figure.figsize'] = (15, 3)\n", | ||
| 135 | "plt.plot(sentiment_results, drawstyle='steps')\n", | ||
| 136 | "plt.title('Sentiment analysis relationship between title and description (Guardian World News)')\n", | ||
| 137 | "plt.legend(['title', 'description'])\n", | ||
| 138 | "plt.show()" | ||
| 139 | ] | ||
| 140 | }, | ||
| 141 | { | ||
| 142 | "cell_type": "code", | ||
| 143 | "execution_count": null, | ||
| 144 | "metadata": {}, | ||
| 145 | "outputs": [], | ||
| 146 | "source": [] | ||
| 147 | } | ||
| 148 | ], | ||
| 149 | "metadata": { | ||
| 150 | "kernelspec": { | ||
| 151 | "display_name": "Python 3", | ||
| 152 | "language": "python", | ||
| 153 | "name": "python3" | ||
| 154 | }, | ||
| 155 | "language_info": { | ||
| 156 | "codemirror_mode": { | ||
| 157 | "name": "ipython", | ||
| 158 | "version": 3 | ||
| 159 | }, | ||
| 160 | "file_extension": ".py", | ||
| 161 | "mimetype": "text/x-python", | ||
| 162 | "name": "python", | ||
| 163 | "nbconvert_exporter": "python", | ||
| 164 | "pygments_lexer": "ipython3", | ||
| 165 | "version": "3.7.3" | ||
| 166 | } | ||
| 167 | }, | ||
| 168 | "nbformat": 4, | ||
| 169 | "nbformat_minor": 4 | ||
| 170 | } | ||
diff --git a/static/assets/posts/simple-pubsub-server/caniuse.png b/static/assets/posts/simple-pubsub-server/caniuse.png new file mode 100755 index 0000000..90f7883 --- /dev/null +++ b/static/assets/posts/simple-pubsub-server/caniuse.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/simple-pubsub-server/chrome-debugging.png b/static/assets/posts/simple-pubsub-server/chrome-debugging.png new file mode 100755 index 0000000..1bdc448 --- /dev/null +++ b/static/assets/posts/simple-pubsub-server/chrome-debugging.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/simple-pubsub-server/clients.m4v b/static/assets/posts/simple-pubsub-server/clients.m4v new file mode 100755 index 0000000..1342bc6 --- /dev/null +++ b/static/assets/posts/simple-pubsub-server/clients.m4v | |||
| Binary files differ | |||
diff --git a/static/assets/posts/simple-pubsub-server/pubsub-overview.png b/static/assets/posts/simple-pubsub-server/pubsub-overview.png new file mode 100755 index 0000000..0279ec3 --- /dev/null +++ b/static/assets/posts/simple-pubsub-server/pubsub-overview.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/simple-pubsub-server/sse-pubsub-server.zip b/static/assets/posts/simple-pubsub-server/sse-pubsub-server.zip new file mode 100755 index 0000000..898b290 --- /dev/null +++ b/static/assets/posts/simple-pubsub-server/sse-pubsub-server.zip | |||
| Binary files differ | |||
diff --git a/static/assets/posts/state-of-web/2008-vs-2020.png b/static/assets/posts/state-of-web/2008-vs-2020.png new file mode 100755 index 0000000..6cf94e5 --- /dev/null +++ b/static/assets/posts/state-of-web/2008-vs-2020.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/state-of-web/compiling-vs-transpiling.png b/static/assets/posts/state-of-web/compiling-vs-transpiling.png new file mode 100755 index 0000000..afd5000 --- /dev/null +++ b/static/assets/posts/state-of-web/compiling-vs-transpiling.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/valgrind-callgrind-svg/kcachegrind.png b/static/assets/posts/valgrind-callgrind-svg/kcachegrind.png new file mode 100644 index 0000000..ce27e87 --- /dev/null +++ b/static/assets/posts/valgrind-callgrind-svg/kcachegrind.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/valgrind-callgrind-svg/out.c.svg b/static/assets/posts/valgrind-callgrind-svg/out.c.svg new file mode 100644 index 0000000..8806756 --- /dev/null +++ b/static/assets/posts/valgrind-callgrind-svg/out.c.svg | |||
| @@ -0,0 +1,1164 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||
| 3 | "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
| 4 | <!-- Generated by graphviz version 8.1.0 (20230707.0739) | ||
| 5 | --> | ||
| 6 | <!-- Pages: 1 --> | ||
| 7 | <svg width="1793pt" height="3102pt" | ||
| 8 | viewBox="0.00 0.00 1792.62 3102.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||
| 9 | <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3098)"> | ||
| 10 | <polygon fill="white" stroke="none" points="-4,4 -4,-3098 1788.62,-3098 1788.62,4 -4,4"/> | ||
| 11 | <!-- (below main) --> | ||
| 12 | <g id="node1" class="node"> | ||
| 13 | <title>(below main)</title> | ||
| 14 | <polygon fill="none" stroke="#000000" points="500,-2834 382.75,-2834 382.75,-2721 500,-2721 500,-2834"/> | ||
| 15 | <text text-anchor="middle" x="441.38" y="-2812.9" font-family="Arial" font-size="18.00" fill="#000000">hi</text> | ||
| 16 | <text text-anchor="middle" x="441.38" y="-2791.9" font-family="Arial" font-size="18.00" fill="#000000">(below main)</text> | ||
| 17 | <text text-anchor="middle" x="441.38" y="-2770.9" font-family="Arial" font-size="18.00" fill="#000000">4.31%</text> | ||
| 18 | <text text-anchor="middle" x="441.38" y="-2749.9" font-family="Arial" font-size="18.00" fill="#000000">(0.03%)</text> | ||
| 19 | <text text-anchor="middle" x="441.38" y="-2728.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 20 | </g> | ||
| 21 | <!-- exit --> | ||
| 22 | <g id="node2" class="node"> | ||
| 23 | <title>exit</title> | ||
| 24 | <polygon fill="none" stroke="#000000" points="482,-2541.25 400.75,-2541.25 400.75,-2428.25 482,-2428.25 482,-2541.25"/> | ||
| 25 | <text text-anchor="middle" x="441.38" y="-2520.15" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 26 | <text text-anchor="middle" x="441.38" y="-2499.15" font-family="Arial" font-size="18.00" fill="#000000">exit</text> | ||
| 27 | <text text-anchor="middle" x="441.38" y="-2478.15" font-family="Arial" font-size="18.00" fill="#000000">1.45%</text> | ||
| 28 | <text text-anchor="middle" x="441.38" y="-2457.15" font-family="Arial" font-size="18.00" fill="#000000">(0.00%)</text> | ||
| 29 | <text text-anchor="middle" x="441.38" y="-2436.15" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 30 | </g> | ||
| 31 | <!-- (below main)->exit --> | ||
| 32 | <g id="edge1" class="edge"> | ||
| 33 | <title>(below main)->exit</title> | ||
| 34 | <path fill="none" stroke="#000000" stroke-width="0.12" d="M441.38,-2720.78C441.38,-2669.68 441.38,-2594.32 441.38,-2542.79"/> | ||
| 35 | <polygon fill="#000000" stroke="#000000" stroke-width="0.12" points="441.97,-2542.98 441.38,-2541.28 440.78,-2542.98 441.97,-2542.98"/> | ||
| 36 | <text text-anchor="middle" x="466.5" y="-2635.03" font-family="Arial" font-size="18.00" fill="#000000">1.45%</text> | ||
| 37 | <text text-anchor="middle" x="466.5" y="-2614.03" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 38 | </g> | ||
| 39 | <!-- main --> | ||
| 40 | <g id="node3" class="node"> | ||
| 41 | <title>main</title> | ||
| 42 | <polygon fill="none" stroke="#000000" points="334.5,-2541.25 256.25,-2541.25 256.25,-2428.25 334.5,-2428.25 334.5,-2541.25"/> | ||
| 43 | <text text-anchor="middle" x="295.38" y="-2520.15" font-family="Arial" font-size="18.00" fill="#000000">hi</text> | ||
| 44 | <text text-anchor="middle" x="295.38" y="-2499.15" font-family="Arial" font-size="18.00" fill="#000000">main</text> | ||
| 45 | <text text-anchor="middle" x="295.38" y="-2478.15" font-family="Arial" font-size="18.00" fill="#000000">2.68%</text> | ||
| 46 | <text text-anchor="middle" x="295.38" y="-2457.15" font-family="Arial" font-size="18.00" fill="#000000">(0.01%)</text> | ||
| 47 | <text text-anchor="middle" x="295.38" y="-2436.15" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 48 | </g> | ||
| 49 | <!-- (below main)->main --> | ||
| 50 | <g id="edge2" class="edge"> | ||
| 51 | <title>(below main)->main</title> | ||
| 52 | <path fill="none" stroke="#000000" stroke-width="0.21" d="M394.53,-2720.55C392.63,-2717.71 390.82,-2714.85 389.12,-2712 356.85,-2657.76 330.48,-2590.35 314.02,-2543.28"/> | ||
| 53 | <polygon fill="#000000" stroke="#000000" stroke-width="0.21" points="314.86,-2543.24 313.34,-2541.34 313.34,-2543.77 314.86,-2543.24"/> | ||
| 54 | <text text-anchor="middle" x="413.5" y="-2635.03" font-family="Arial" font-size="18.00" fill="#000000">2.68%</text> | ||
| 55 | <text text-anchor="middle" x="413.5" y="-2614.03" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 56 | </g> | ||
| 57 | <!-- __run_exit_handlers --> | ||
| 58 | <g id="node21" class="node"> | ||
| 59 | <title>__run_exit_handlers</title> | ||
| 60 | <polygon fill="none" stroke="#000000" points="529.25,-2348.75 353.5,-2348.75 353.5,-2235.75 529.25,-2235.75 529.25,-2348.75"/> | ||
| 61 | <text text-anchor="middle" x="441.38" y="-2327.65" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 62 | <text text-anchor="middle" x="441.38" y="-2306.65" font-family="Arial" font-size="18.00" fill="#000000">__run_exit_handlers</text> | ||
| 63 | <text text-anchor="middle" x="441.38" y="-2285.65" font-family="Arial" font-size="18.00" fill="#000000">1.45%</text> | ||
| 64 | <text text-anchor="middle" x="441.38" y="-2264.65" font-family="Arial" font-size="18.00" fill="#000000">(0.05%)</text> | ||
| 65 | <text text-anchor="middle" x="441.38" y="-2243.65" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 66 | </g> | ||
| 67 | <!-- exit->__run_exit_handlers --> | ||
| 68 | <g id="edge57" class="edge"> | ||
| 69 | <title>exit->__run_exit_handlers</title> | ||
| 70 | <path fill="none" stroke="#000000" stroke-width="0.12" d="M441.38,-2427.88C441.38,-2403.55 441.38,-2375.07 441.38,-2350.58"/> | ||
| 71 | <polygon fill="#000000" stroke="#000000" stroke-width="0.12" points="441.97,-2350.82 441.38,-2349.12 440.78,-2350.82 441.97,-2350.82"/> | ||
| 72 | <text text-anchor="middle" x="466.5" y="-2392.4" font-family="Arial" font-size="18.00" fill="#000000">1.45%</text> | ||
| 73 | <text text-anchor="middle" x="466.5" y="-2371.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 74 | </g> | ||
| 75 | <!-- _dl_runtime_resolve_xsave --> | ||
| 76 | <g id="node8" class="node"> | ||
| 77 | <title>_dl_runtime_resolve_xsave</title> | ||
| 78 | <polygon fill="none" stroke="#000000" points="557,-1293 325.75,-1293 325.75,-1180 557,-1180 557,-1293"/> | ||
| 79 | <text text-anchor="middle" x="441.38" y="-1271.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 80 | <text text-anchor="middle" x="441.38" y="-1250.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_runtime_resolve_xsave</text> | ||
| 81 | <text text-anchor="middle" x="441.38" y="-1229.9" font-family="Arial" font-size="18.00" fill="#000000">0.89%</text> | ||
| 82 | <text text-anchor="middle" x="441.38" y="-1208.9" font-family="Arial" font-size="18.00" fill="#000000">(0.06%)</text> | ||
| 83 | <text text-anchor="middle" x="441.38" y="-1187.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 84 | </g> | ||
| 85 | <!-- main->_dl_runtime_resolve_xsave --> | ||
| 86 | <g id="edge62" class="edge"> | ||
| 87 | <title>main->_dl_runtime_resolve_xsave</title> | ||
| 88 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M295.38,-2427.9C295.38,-2389.93 295.38,-2338.56 295.38,-2293.25 295.38,-2293.25 295.38,-2293.25 295.38,-1479.5 295.38,-1408.42 342.12,-1340.3 382.71,-1294.54"/> | ||
| 89 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="383.03,-1295.03 383.67,-1293.46 382.19,-1294.29 383.03,-1295.03"/> | ||
| 90 | <text text-anchor="middle" x="320.5" y="-1901.4" font-family="Arial" font-size="18.00" fill="#000000">0.45%</text> | ||
| 91 | <text text-anchor="middle" x="320.5" y="-1880.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 92 | </g> | ||
| 93 | <!-- printf --> | ||
| 94 | <g id="node59" class="node"> | ||
| 95 | <title>printf</title> | ||
| 96 | <polygon fill="none" stroke="#000000" points="250,-2348.75 168.75,-2348.75 168.75,-2235.75 250,-2235.75 250,-2348.75"/> | ||
| 97 | <text text-anchor="middle" x="209.38" y="-2327.65" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 98 | <text text-anchor="middle" x="209.38" y="-2306.65" font-family="Arial" font-size="18.00" fill="#000000">printf</text> | ||
| 99 | <text text-anchor="middle" x="209.38" y="-2285.65" font-family="Arial" font-size="18.00" fill="#000000">2.22%</text> | ||
| 100 | <text text-anchor="middle" x="209.38" y="-2264.65" font-family="Arial" font-size="18.00" fill="#000000">(0.02%)</text> | ||
| 101 | <text text-anchor="middle" x="209.38" y="-2243.65" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 102 | </g> | ||
| 103 | <!-- main->printf --> | ||
| 104 | <g id="edge63" class="edge"> | ||
| 105 | <title>main->printf</title> | ||
| 106 | <path fill="none" stroke="#000000" stroke-width="0.18" d="M255.93,-2445.49C249.19,-2437.36 242.85,-2428.44 238.12,-2419.25 227.29,-2398.19 220.51,-2373.09 216.27,-2350.84"/> | ||
| 107 | <polygon fill="#000000" stroke="#000000" stroke-width="0.18" points="217.03,-2350.9 215.92,-2348.98 215.58,-2351.18 217.03,-2350.9"/> | ||
| 108 | <text text-anchor="middle" x="263.5" y="-2392.4" font-family="Arial" font-size="18.00" fill="#000000">2.22%</text> | ||
| 109 | <text text-anchor="middle" x="263.5" y="-2371.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 110 | </g> | ||
| 111 | <!-- 0x0000000000001100 --> | ||
| 112 | <g id="node4" class="node"> | ||
| 113 | <title>0x0000000000001100</title> | ||
| 114 | <polygon fill="none" stroke="#000000" points="573.12,-1781 309.62,-1781 309.62,-1668 573.12,-1668 573.12,-1781"/> | ||
| 115 | <text text-anchor="middle" x="441.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">vgpreload_core-amd64-linux.so</text> | ||
| 116 | <text text-anchor="middle" x="441.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">0x0000000000001100</text> | ||
| 117 | <text text-anchor="middle" x="441.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">0.51%</text> | ||
| 118 | <text text-anchor="middle" x="441.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.01%)</text> | ||
| 119 | <text text-anchor="middle" x="441.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 120 | </g> | ||
| 121 | <!-- 0x0000000004837060 --> | ||
| 122 | <g id="node5" class="node"> | ||
| 123 | <title>0x0000000004837060</title> | ||
| 124 | <polygon fill="none" stroke="#000000" points="536.75,-1537 346,-1537 346,-1424 536.75,-1424 536.75,-1537"/> | ||
| 125 | <text text-anchor="middle" x="441.38" y="-1515.9" font-family="Arial" font-size="18.00" fill="#000000">???</text> | ||
| 126 | <text text-anchor="middle" x="441.38" y="-1494.9" font-family="Arial" font-size="18.00" fill="#000000">0x0000000004837060</text> | ||
| 127 | <text text-anchor="middle" x="441.38" y="-1473.9" font-family="Arial" font-size="18.00" fill="#000000">0.50%</text> | ||
| 128 | <text text-anchor="middle" x="441.38" y="-1452.9" font-family="Arial" font-size="18.00" fill="#000000">(0.00%)</text> | ||
| 129 | <text text-anchor="middle" x="441.38" y="-1431.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 130 | </g> | ||
| 131 | <!-- 0x0000000000001100->0x0000000004837060 --> | ||
| 132 | <g id="edge3" class="edge"> | ||
| 133 | <title>0x0000000000001100->0x0000000004837060</title> | ||
| 134 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M441.38,-1667.68C441.38,-1629.05 441.38,-1577.79 441.38,-1538.84"/> | ||
| 135 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="441.94,-1539.06 441.38,-1537.46 440.82,-1539.06 441.94,-1539.06"/> | ||
| 136 | <text text-anchor="middle" x="466.5" y="-1606.4" font-family="Arial" font-size="18.00" fill="#000000">0.50%</text> | ||
| 137 | <text text-anchor="middle" x="466.5" y="-1585.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 138 | </g> | ||
| 139 | <!-- 0x0000000004837060->_dl_runtime_resolve_xsave --> | ||
| 140 | <g id="edge6" class="edge"> | ||
| 141 | <title>0x0000000004837060->_dl_runtime_resolve_xsave</title> | ||
| 142 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M441.38,-1423.68C441.38,-1385.05 441.38,-1333.79 441.38,-1294.84"/> | ||
| 143 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="441.94,-1295.06 441.38,-1293.46 440.82,-1295.06 441.94,-1295.06"/> | ||
| 144 | <text text-anchor="middle" x="466.5" y="-1362.4" font-family="Arial" font-size="18.00" fill="#000000">0.44%</text> | ||
| 145 | <text text-anchor="middle" x="466.5" y="-1341.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 146 | </g> | ||
| 147 | <!-- 0x000000000001bbc0 --> | ||
| 148 | <g id="node6" class="node"> | ||
| 149 | <title>0x000000000001bbc0</title> | ||
| 150 | <polygon fill="none" stroke="#000000" points="687.38,-3094 377.38,-3094 377.38,-2913.5 687.38,-2913.5 687.38,-3094"/> | ||
| 151 | <text text-anchor="middle" x="532.38" y="-3061.5" font-family="Arial" font-size="30.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 152 | <text text-anchor="middle" x="532.38" y="-3027" font-family="Arial" font-size="30.00" fill="#000000">0x000000000001bbc0</text> | ||
| 153 | <text text-anchor="middle" x="532.38" y="-2992.5" font-family="Arial" font-size="30.00" fill="#000000">100.00%</text> | ||
| 154 | <text text-anchor="middle" x="532.38" y="-2958" font-family="Arial" font-size="30.00" fill="#000000">(0.01%)</text> | ||
| 155 | <text text-anchor="middle" x="532.38" y="-2923.5" font-family="Arial" font-size="30.00" fill="#000000">0×</text> | ||
| 156 | </g> | ||
| 157 | <!-- 0x000000000001bbc0->(below main) --> | ||
| 158 | <g id="edge4" class="edge"> | ||
| 159 | <title>0x000000000001bbc0->(below main)</title> | ||
| 160 | <path fill="none" stroke="#000000" stroke-width="0.34" d="M496.02,-2913.15C485.6,-2887.49 474.53,-2860.19 465.08,-2836.93"/> | ||
| 161 | <polygon fill="#000000" stroke="#000000" stroke-width="0.34" points="466.09,-2836.71 464.06,-2834.4 464.21,-2837.47 466.09,-2836.71"/> | ||
| 162 | <text text-anchor="middle" x="516.5" y="-2877.65" font-family="Arial" font-size="18.00" fill="#000000">4.31%</text> | ||
| 163 | <text text-anchor="middle" x="516.5" y="-2856.65" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 164 | </g> | ||
| 165 | <!-- _dl_start --> | ||
| 166 | <g id="node7" class="node"> | ||
| 167 | <title>_dl_start</title> | ||
| 168 | <polygon fill="none" stroke="#000000" points="790.12,-2712 538.62,-2712 538.62,-2550.25 790.12,-2550.25 790.12,-2712"/> | ||
| 169 | <text text-anchor="middle" x="664.38" y="-2682.06" font-family="Arial" font-size="27.30" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 170 | <text text-anchor="middle" x="664.38" y="-2651.31" font-family="Arial" font-size="27.30" fill="#000000">_dl_start</text> | ||
| 171 | <text text-anchor="middle" x="664.38" y="-2620.56" font-family="Arial" font-size="27.30" fill="#000000">95.40%</text> | ||
| 172 | <text text-anchor="middle" x="664.38" y="-2589.81" font-family="Arial" font-size="27.30" fill="#000000">(0.38%)</text> | ||
| 173 | <text text-anchor="middle" x="664.38" y="-2559.06" font-family="Arial" font-size="27.30" fill="#000000">1×</text> | ||
| 174 | </g> | ||
| 175 | <!-- 0x000000000001bbc0->_dl_start --> | ||
| 176 | <g id="edge5" class="edge"> | ||
| 177 | <title>0x000000000001bbc0->_dl_start</title> | ||
| 178 | <path fill="none" stroke="#000000" stroke-width="7.63" d="M564.33,-2913.03C583.9,-2858.08 608.97,-2787.68 629.12,-2731.11"/> | ||
| 179 | <polygon fill="#000000" stroke="#000000" stroke-width="7.63" points="637.8,-2734.59 633.75,-2718.5 620.44,-2728.41 637.8,-2734.59"/> | ||
| 180 | <text text-anchor="middle" x="632.12" y="-2878.56" font-family="Arial" font-size="27.30" fill="#000000">95.40%</text> | ||
| 181 | <text text-anchor="middle" x="632.12" y="-2847.81" font-family="Arial" font-size="27.30" fill="#000000">1×</text> | ||
| 182 | </g> | ||
| 183 | <!-- _dl_sysdep_start --> | ||
| 184 | <g id="node49" class="node"> | ||
| 185 | <title>_dl_sysdep_start</title> | ||
| 186 | <polygon fill="none" stroke="#000000" points="975.12,-2175.75 723.62,-2175.75 723.62,-2014 975.12,-2014 975.12,-2175.75"/> | ||
| 187 | <text text-anchor="middle" x="849.38" y="-2146.03" font-family="Arial" font-size="27.07" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 188 | <text text-anchor="middle" x="849.38" y="-2115.28" font-family="Arial" font-size="27.07" fill="#000000">_dl_sysdep_start</text> | ||
| 189 | <text text-anchor="middle" x="849.38" y="-2084.53" font-family="Arial" font-size="27.07" fill="#000000">94.99%</text> | ||
| 190 | <text text-anchor="middle" x="849.38" y="-2053.78" font-family="Arial" font-size="27.07" fill="#000000">(0.03%)</text> | ||
| 191 | <text text-anchor="middle" x="849.38" y="-2023.03" font-family="Arial" font-size="27.07" fill="#000000">1×</text> | ||
| 192 | </g> | ||
| 193 | <!-- _dl_start->_dl_sysdep_start --> | ||
| 194 | <g id="edge41" class="edge"> | ||
| 195 | <title>_dl_start->_dl_sysdep_start</title> | ||
| 196 | <path fill="none" stroke="#000000" stroke-width="7.6" d="M692.17,-2549.85C725.07,-2454.83 779.86,-2296.62 815.29,-2194.3"/> | ||
| 197 | <polygon fill="#000000" stroke="#000000" stroke-width="7.6" points="823.83,-2197.92 819.67,-2181.87 806.49,-2191.91 823.83,-2197.92"/> | ||
| 198 | <text text-anchor="middle" x="802.12" y="-2393.53" font-family="Arial" font-size="27.07" fill="#000000">94.99%</text> | ||
| 199 | <text text-anchor="middle" x="802.12" y="-2362.78" font-family="Arial" font-size="27.07" fill="#000000">1×</text> | ||
| 200 | </g> | ||
| 201 | <!-- _dl_fixup --> | ||
| 202 | <g id="node34" class="node"> | ||
| 203 | <title>_dl_fixup</title> | ||
| 204 | <polygon fill="none" stroke="#000000" points="643.62,-1049 473.12,-1049 473.12,-936 643.62,-936 643.62,-1049"/> | ||
| 205 | <text text-anchor="middle" x="558.38" y="-1027.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 206 | <text text-anchor="middle" x="558.38" y="-1006.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_fixup</text> | ||
| 207 | <text text-anchor="middle" x="558.38" y="-985.9" font-family="Arial" font-size="18.00" fill="#000000">0.84%</text> | ||
| 208 | <text text-anchor="middle" x="558.38" y="-964.9" font-family="Arial" font-size="18.00" fill="#000000">(0.13%)</text> | ||
| 209 | <text text-anchor="middle" x="558.38" y="-943.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 210 | </g> | ||
| 211 | <!-- _dl_runtime_resolve_xsave->_dl_fixup --> | ||
| 212 | <g id="edge40" class="edge"> | ||
| 213 | <title>_dl_runtime_resolve_xsave->_dl_fixup</title> | ||
| 214 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M468.36,-1179.68C487.04,-1141.05 511.82,-1089.79 530.65,-1050.84"/> | ||
| 215 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="531.13,-1051.15 531.32,-1049.46 530.12,-1050.66 531.13,-1051.15"/> | ||
| 216 | <text text-anchor="middle" x="551.5" y="-1118.4" font-family="Arial" font-size="18.00" fill="#000000">0.84%</text> | ||
| 217 | <text text-anchor="middle" x="551.5" y="-1097.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 218 | </g> | ||
| 219 | <!-- 0x00000000048827a0 --> | ||
| 220 | <g id="node9" class="node"> | ||
| 221 | <title>0x00000000048827a0</title> | ||
| 222 | <polygon fill="none" stroke="#000000" points="241.75,-459 51,-459 51,-346 241.75,-346 241.75,-459"/> | ||
| 223 | <text text-anchor="middle" x="146.38" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">???</text> | ||
| 224 | <text text-anchor="middle" x="146.38" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">0x00000000048827a0</text> | ||
| 225 | <text text-anchor="middle" x="146.38" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">1.24%</text> | ||
| 226 | <text text-anchor="middle" x="146.38" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(0.00%)</text> | ||
| 227 | <text text-anchor="middle" x="146.38" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 228 | </g> | ||
| 229 | <!-- malloc --> | ||
| 230 | <g id="node10" class="node"> | ||
| 231 | <title>malloc</title> | ||
| 232 | <polygon fill="none" stroke="#000000" points="187,-286 105.75,-286 105.75,-173 187,-173 187,-286"/> | ||
| 233 | <text text-anchor="middle" x="146.38" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 234 | <text text-anchor="middle" x="146.38" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">malloc</text> | ||
| 235 | <text text-anchor="middle" x="146.38" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">1.24%</text> | ||
| 236 | <text text-anchor="middle" x="146.38" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(0.04%)</text> | ||
| 237 | <text text-anchor="middle" x="146.38" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 238 | </g> | ||
| 239 | <!-- 0x00000000048827a0->malloc --> | ||
| 240 | <g id="edge7" class="edge"> | ||
| 241 | <title>0x00000000048827a0->malloc</title> | ||
| 242 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M146.38,-345.51C146.38,-326.96 146.38,-306.3 146.38,-287.66"/> | ||
| 243 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="146.94,-287.93 146.38,-286.33 145.82,-287.93 146.94,-287.93"/> | ||
| 244 | <text text-anchor="middle" x="171.5" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">1.24%</text> | ||
| 245 | <text text-anchor="middle" x="171.5" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 246 | </g> | ||
| 247 | <!-- ptmalloc_init.part.0 --> | ||
| 248 | <g id="node60" class="node"> | ||
| 249 | <title>ptmalloc_init.part.0</title> | ||
| 250 | <polygon fill="none" stroke="#000000" points="229,-113 63.75,-113 63.75,0 229,0 229,-113"/> | ||
| 251 | <text text-anchor="middle" x="146.38" y="-91.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 252 | <text text-anchor="middle" x="146.38" y="-70.9" font-family="Arial" font-size="18.00" fill="#000000">ptmalloc_init.part.0</text> | ||
| 253 | <text text-anchor="middle" x="146.38" y="-49.9" font-family="Arial" font-size="18.00" fill="#000000">0.77%</text> | ||
| 254 | <text text-anchor="middle" x="146.38" y="-28.9" font-family="Arial" font-size="18.00" fill="#000000">(0.58%)</text> | ||
| 255 | <text text-anchor="middle" x="146.38" y="-7.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 256 | </g> | ||
| 257 | <!-- malloc->ptmalloc_init.part.0 --> | ||
| 258 | <g id="edge64" class="edge"> | ||
| 259 | <title>malloc->ptmalloc_init.part.0</title> | ||
| 260 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M146.38,-172.51C146.38,-153.96 146.38,-133.3 146.38,-114.66"/> | ||
| 261 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="146.94,-114.93 146.38,-113.33 145.82,-114.93 146.94,-114.93"/> | ||
| 262 | <text text-anchor="middle" x="171.5" y="-146.9" font-family="Arial" font-size="18.00" fill="#000000">0.77%</text> | ||
| 263 | <text text-anchor="middle" x="171.5" y="-125.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 264 | </g> | ||
| 265 | <!-- _IO_default_xsputn --> | ||
| 266 | <g id="node11" class="node"> | ||
| 267 | <title>_IO_default_xsputn</title> | ||
| 268 | <polygon fill="none" stroke="#000000" points="293.62,-1293 123.12,-1293 123.12,-1180 293.62,-1180 293.62,-1293"/> | ||
| 269 | <text text-anchor="middle" x="208.38" y="-1271.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 270 | <text text-anchor="middle" x="208.38" y="-1250.9" font-family="Arial" font-size="18.00" fill="#000000">_IO_default_xsputn</text> | ||
| 271 | <text text-anchor="middle" x="208.38" y="-1229.9" font-family="Arial" font-size="18.00" fill="#000000">0.58%</text> | ||
| 272 | <text text-anchor="middle" x="208.38" y="-1208.9" font-family="Arial" font-size="18.00" fill="#000000">(0.18%)</text> | ||
| 273 | <text text-anchor="middle" x="208.38" y="-1187.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 274 | </g> | ||
| 275 | <!-- _IO_file_overflow@@GLIBC_2.2.5 --> | ||
| 276 | <g id="node12" class="node"> | ||
| 277 | <title>_IO_file_overflow@@GLIBC_2.2.5</title> | ||
| 278 | <polygon fill="none" stroke="#000000" points="292.75,-1049 0,-1049 0,-936 292.75,-936 292.75,-1049"/> | ||
| 279 | <text text-anchor="middle" x="146.38" y="-1027.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 280 | <text text-anchor="middle" x="146.38" y="-1006.9" font-family="Arial" font-size="18.00" fill="#000000">_IO_file_overflow@@GLIBC_2.2.5</text> | ||
| 281 | <text text-anchor="middle" x="146.38" y="-985.9" font-family="Arial" font-size="18.00" fill="#000000">1.78%</text> | ||
| 282 | <text text-anchor="middle" x="146.38" y="-964.9" font-family="Arial" font-size="18.00" fill="#000000">(0.36%)</text> | ||
| 283 | <text text-anchor="middle" x="146.38" y="-943.9" font-family="Arial" font-size="18.00" fill="#000000">13×</text> | ||
| 284 | </g> | ||
| 285 | <!-- _IO_default_xsputn->_IO_file_overflow@@GLIBC_2.2.5 --> | ||
| 286 | <g id="edge8" class="edge"> | ||
| 287 | <title>_IO_default_xsputn->_IO_file_overflow@@GLIBC_2.2.5</title> | ||
| 288 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M194.07,-1179.68C184.18,-1141.05 171.05,-1089.79 161.07,-1050.84"/> | ||
| 289 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="161.65,-1050.87 160.71,-1049.46 160.57,-1051.15 161.65,-1050.87"/> | ||
| 290 | <text text-anchor="middle" x="217.5" y="-1118.4" font-family="Arial" font-size="18.00" fill="#000000">0.40%</text> | ||
| 291 | <text text-anchor="middle" x="217.5" y="-1097.4" font-family="Arial" font-size="18.00" fill="#000000">12×</text> | ||
| 292 | </g> | ||
| 293 | <!-- _IO_doallocbuf --> | ||
| 294 | <g id="node13" class="node"> | ||
| 295 | <title>_IO_doallocbuf</title> | ||
| 296 | <polygon fill="none" stroke="#000000" points="214,-805 78.75,-805 78.75,-692 214,-692 214,-805"/> | ||
| 297 | <text text-anchor="middle" x="146.38" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 298 | <text text-anchor="middle" x="146.38" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">_IO_doallocbuf</text> | ||
| 299 | <text text-anchor="middle" x="146.38" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">1.34%</text> | ||
| 300 | <text text-anchor="middle" x="146.38" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(0.02%)</text> | ||
| 301 | <text text-anchor="middle" x="146.38" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 302 | </g> | ||
| 303 | <!-- _IO_file_overflow@@GLIBC_2.2.5->_IO_doallocbuf --> | ||
| 304 | <g id="edge11" class="edge"> | ||
| 305 | <title>_IO_file_overflow@@GLIBC_2.2.5->_IO_doallocbuf</title> | ||
| 306 | <path fill="none" stroke="#000000" stroke-width="0.11" d="M146.38,-935.68C146.38,-897.05 146.38,-845.79 146.38,-806.84"/> | ||
| 307 | <polygon fill="#000000" stroke="#000000" stroke-width="0.11" points="146.94,-807.06 146.38,-805.46 145.82,-807.06 146.94,-807.06"/> | ||
| 308 | <text text-anchor="middle" x="171.5" y="-874.4" font-family="Arial" font-size="18.00" fill="#000000">1.34%</text> | ||
| 309 | <text text-anchor="middle" x="171.5" y="-853.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 310 | </g> | ||
| 311 | <!-- _IO_file_doallocate --> | ||
| 312 | <g id="node14" class="node"> | ||
| 313 | <title>_IO_file_doallocate</title> | ||
| 314 | <polygon fill="none" stroke="#000000" points="230.12,-632 62.62,-632 62.62,-519 230.12,-519 230.12,-632"/> | ||
| 315 | <text text-anchor="middle" x="146.38" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 316 | <text text-anchor="middle" x="146.38" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">_IO_file_doallocate</text> | ||
| 317 | <text text-anchor="middle" x="146.38" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">1.32%</text> | ||
| 318 | <text text-anchor="middle" x="146.38" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(0.04%)</text> | ||
| 319 | <text text-anchor="middle" x="146.38" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 320 | </g> | ||
| 321 | <!-- _IO_doallocbuf->_IO_file_doallocate --> | ||
| 322 | <g id="edge9" class="edge"> | ||
| 323 | <title>_IO_doallocbuf->_IO_file_doallocate</title> | ||
| 324 | <path fill="none" stroke="#000000" stroke-width="0.11" d="M146.38,-691.51C146.38,-672.96 146.38,-652.3 146.38,-633.66"/> | ||
| 325 | <polygon fill="#000000" stroke="#000000" stroke-width="0.11" points="146.94,-633.93 146.38,-632.33 145.82,-633.93 146.94,-633.93"/> | ||
| 326 | <text text-anchor="middle" x="171.5" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">1.32%</text> | ||
| 327 | <text text-anchor="middle" x="171.5" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 328 | </g> | ||
| 329 | <!-- _IO_file_doallocate->0x00000000048827a0 --> | ||
| 330 | <g id="edge10" class="edge"> | ||
| 331 | <title>_IO_file_doallocate->0x00000000048827a0</title> | ||
| 332 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M146.38,-518.51C146.38,-499.96 146.38,-479.3 146.38,-460.66"/> | ||
| 333 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="146.94,-460.93 146.38,-459.33 145.82,-460.93 146.94,-460.93"/> | ||
| 334 | <text text-anchor="middle" x="171.5" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">1.24%</text> | ||
| 335 | <text text-anchor="middle" x="171.5" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 336 | </g> | ||
| 337 | <!-- _IO_file_xsputn@@GLIBC_2.2.5 --> | ||
| 338 | <g id="node15" class="node"> | ||
| 339 | <title>_IO_file_xsputn@@GLIBC_2.2.5</title> | ||
| 340 | <polygon fill="none" stroke="#000000" points="281,-1537 1.75,-1537 1.75,-1424 281,-1424 281,-1537"/> | ||
| 341 | <text text-anchor="middle" x="141.38" y="-1515.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 342 | <text text-anchor="middle" x="141.38" y="-1494.9" font-family="Arial" font-size="18.00" fill="#000000">_IO_file_xsputn@@GLIBC_2.2.5</text> | ||
| 343 | <text text-anchor="middle" x="141.38" y="-1473.9" font-family="Arial" font-size="18.00" fill="#000000">2.00%</text> | ||
| 344 | <text text-anchor="middle" x="141.38" y="-1452.9" font-family="Arial" font-size="18.00" fill="#000000">(0.04%)</text> | ||
| 345 | <text text-anchor="middle" x="141.38" y="-1431.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 346 | </g> | ||
| 347 | <!-- _IO_file_xsputn@@GLIBC_2.2.5->_IO_default_xsputn --> | ||
| 348 | <g id="edge12" class="edge"> | ||
| 349 | <title>_IO_file_xsputn@@GLIBC_2.2.5->_IO_default_xsputn</title> | ||
| 350 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M156.83,-1423.68C167.52,-1385.05 181.72,-1333.79 192.5,-1294.84"/> | ||
| 351 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="192.99,-1295.15 192.88,-1293.46 191.91,-1294.85 192.99,-1295.15"/> | ||
| 352 | <text text-anchor="middle" x="216.5" y="-1362.4" font-family="Arial" font-size="18.00" fill="#000000">0.58%</text> | ||
| 353 | <text text-anchor="middle" x="216.5" y="-1341.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 354 | </g> | ||
| 355 | <!-- _IO_file_xsputn@@GLIBC_2.2.5->_IO_file_overflow@@GLIBC_2.2.5 --> | ||
| 356 | <g id="edge13" class="edge"> | ||
| 357 | <title>_IO_file_xsputn@@GLIBC_2.2.5->_IO_file_overflow@@GLIBC_2.2.5</title> | ||
| 358 | <path fill="none" stroke="#000000" stroke-width="0.11" d="M113.04,-1423.6C96.31,-1387.39 76.76,-1338.63 68.12,-1293 58.78,-1243.65 58.21,-1229.23 68.12,-1180 77.27,-1134.58 97.77,-1086.44 115.49,-1050.45"/> | ||
| 359 | <polygon fill="#000000" stroke="#000000" stroke-width="0.11" points="115.91,-1050.96 116.12,-1049.18 114.84,-1050.44 115.91,-1050.96"/> | ||
| 360 | <text text-anchor="middle" x="93.5" y="-1240.4" font-family="Arial" font-size="18.00" fill="#000000">1.38%</text> | ||
| 361 | <text text-anchor="middle" x="93.5" y="-1219.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 362 | </g> | ||
| 363 | <!-- __GI___tunables_init --> | ||
| 364 | <g id="node16" class="node"> | ||
| 365 | <title>__GI___tunables_init</title> | ||
| 366 | <polygon fill="none" stroke="#000000" points="1010,-1954 826.75,-1954 826.75,-1841 1010,-1841 1010,-1954"/> | ||
| 367 | <text text-anchor="middle" x="918.38" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 368 | <text text-anchor="middle" x="918.38" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">__GI___tunables_init</text> | ||
| 369 | <text text-anchor="middle" x="918.38" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">21.69%</text> | ||
| 370 | <text text-anchor="middle" x="918.38" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(21.69%)</text> | ||
| 371 | <text text-anchor="middle" x="918.38" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 372 | </g> | ||
| 373 | <!-- __printf_buffer_flush_to_file --> | ||
| 374 | <g id="node17" class="node"> | ||
| 375 | <title>__printf_buffer_flush_to_file</title> | ||
| 376 | <polygon fill="none" stroke="#000000" points="264.5,-1781 30.25,-1781 30.25,-1668 264.5,-1668 264.5,-1781"/> | ||
| 377 | <text text-anchor="middle" x="147.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 378 | <text text-anchor="middle" x="147.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">__printf_buffer_flush_to_file</text> | ||
| 379 | <text text-anchor="middle" x="147.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">2.04%</text> | ||
| 380 | <text text-anchor="middle" x="147.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.03%)</text> | ||
| 381 | <text text-anchor="middle" x="147.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 382 | </g> | ||
| 383 | <!-- __printf_buffer_flush_to_file->_IO_file_xsputn@@GLIBC_2.2.5 --> | ||
| 384 | <g id="edge14" class="edge"> | ||
| 385 | <title>__printf_buffer_flush_to_file->_IO_file_xsputn@@GLIBC_2.2.5</title> | ||
| 386 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M145.99,-1667.68C145.04,-1629.2 143.77,-1578.2 142.81,-1539.3"/> | ||
| 387 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="143.51,-1539.44 142.76,-1537.46 142.11,-1539.48 143.51,-1539.44"/> | ||
| 388 | <text text-anchor="middle" x="171.5" y="-1606.4" font-family="Arial" font-size="18.00" fill="#000000">2.00%</text> | ||
| 389 | <text text-anchor="middle" x="171.5" y="-1585.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 390 | </g> | ||
| 391 | <!-- __printf_buffer_to_file_done --> | ||
| 392 | <g id="node18" class="node"> | ||
| 393 | <title>__printf_buffer_to_file_done</title> | ||
| 394 | <polygon fill="none" stroke="#000000" points="275.25,-1954 39.5,-1954 39.5,-1841 275.25,-1841 275.25,-1954"/> | ||
| 395 | <text text-anchor="middle" x="157.38" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 396 | <text text-anchor="middle" x="157.38" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">__printf_buffer_to_file_done</text> | ||
| 397 | <text text-anchor="middle" x="157.38" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">2.06%</text> | ||
| 398 | <text text-anchor="middle" x="157.38" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(0.01%)</text> | ||
| 399 | <text text-anchor="middle" x="157.38" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 400 | </g> | ||
| 401 | <!-- __printf_buffer_to_file_done->__printf_buffer_flush_to_file --> | ||
| 402 | <g id="edge15" class="edge"> | ||
| 403 | <title>__printf_buffer_to_file_done->__printf_buffer_flush_to_file</title> | ||
| 404 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M154.1,-1840.51C153.02,-1822.11 151.83,-1801.63 150.74,-1783.11"/> | ||
| 405 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="151.46,-1783.28 150.64,-1781.33 150.06,-1783.36 151.46,-1783.28"/> | ||
| 406 | <text text-anchor="middle" x="179.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">2.04%</text> | ||
| 407 | <text text-anchor="middle" x="179.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 408 | </g> | ||
| 409 | <!-- __rtld_malloc_init_real --> | ||
| 410 | <g id="node19" class="node"> | ||
| 411 | <title>__rtld_malloc_init_real</title> | ||
| 412 | <polygon fill="none" stroke="#000000" points="1032.5,-1781 840.25,-1781 840.25,-1668 1032.5,-1668 1032.5,-1781"/> | ||
| 413 | <text text-anchor="middle" x="936.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 414 | <text text-anchor="middle" x="936.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">__rtld_malloc_init_real</text> | ||
| 415 | <text text-anchor="middle" x="936.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">1.57%</text> | ||
| 416 | <text text-anchor="middle" x="936.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.08%)</text> | ||
| 417 | <text text-anchor="middle" x="936.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 418 | </g> | ||
| 419 | <!-- lookup_malloc_symbol --> | ||
| 420 | <g id="node20" class="node"> | ||
| 421 | <title>lookup_malloc_symbol</title> | ||
| 422 | <polygon fill="none" stroke="#000000" points="1010.62,-1171 816.12,-1171 816.12,-1058 1010.62,-1058 1010.62,-1171"/> | ||
| 423 | <text text-anchor="middle" x="913.38" y="-1149.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 424 | <text text-anchor="middle" x="913.38" y="-1128.9" font-family="Arial" font-size="18.00" fill="#000000">lookup_malloc_symbol</text> | ||
| 425 | <text text-anchor="middle" x="913.38" y="-1107.9" font-family="Arial" font-size="18.00" fill="#000000">1.50%</text> | ||
| 426 | <text text-anchor="middle" x="913.38" y="-1086.9" font-family="Arial" font-size="18.00" fill="#000000">(0.12%)</text> | ||
| 427 | <text text-anchor="middle" x="913.38" y="-1065.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 428 | </g> | ||
| 429 | <!-- __rtld_malloc_init_real->lookup_malloc_symbol --> | ||
| 430 | <g id="edge16" class="edge"> | ||
| 431 | <title>__rtld_malloc_init_real->lookup_malloc_symbol</title> | ||
| 432 | <path fill="none" stroke="#000000" stroke-width="0.12" d="M934.26,-1667.66C929.9,-1552.3 919.93,-1288.77 915.53,-1172.46"/> | ||
| 433 | <polygon fill="#000000" stroke="#000000" stroke-width="0.12" points="916.14,-1172.77 915.48,-1171.1 914.95,-1172.82 916.14,-1172.77"/> | ||
| 434 | <text text-anchor="middle" x="953.5" y="-1484.4" font-family="Arial" font-size="18.00" fill="#000000">1.50%</text> | ||
| 435 | <text text-anchor="middle" x="953.5" y="-1463.4" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 436 | </g> | ||
| 437 | <!-- _dl_lookup_symbol_x --> | ||
| 438 | <g id="node35" class="node"> | ||
| 439 | <title>_dl_lookup_symbol_x</title> | ||
| 440 | <polygon fill="none" stroke="#000000" points="1007.12,-805 821.62,-805 821.62,-692 1007.12,-692 1007.12,-805"/> | ||
| 441 | <text text-anchor="middle" x="914.38" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 442 | <text text-anchor="middle" x="914.38" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_lookup_symbol_x</text> | ||
| 443 | <text text-anchor="middle" x="914.38" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">35.89%</text> | ||
| 444 | <text text-anchor="middle" x="914.38" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(12.41%)</text> | ||
| 445 | <text text-anchor="middle" x="914.38" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">96×</text> | ||
| 446 | </g> | ||
| 447 | <!-- lookup_malloc_symbol->_dl_lookup_symbol_x --> | ||
| 448 | <g id="edge61" class="edge"> | ||
| 449 | <title>lookup_malloc_symbol->_dl_lookup_symbol_x</title> | ||
| 450 | <path fill="none" stroke="#000000" stroke-width="0.11" d="M913.53,-1057.82C913.71,-989.94 914.03,-875.82 914.22,-807.09"/> | ||
| 451 | <polygon fill="#000000" stroke="#000000" stroke-width="0.11" points="914.81,-807.17 914.22,-805.47 913.62,-807.17 914.81,-807.17"/> | ||
| 452 | <text text-anchor="middle" x="938.5" y="-996.4" font-family="Arial" font-size="18.00" fill="#000000">1.37%</text> | ||
| 453 | <text text-anchor="middle" x="938.5" y="-975.4" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 454 | </g> | ||
| 455 | <!-- _dl_fini --> | ||
| 456 | <g id="node22" class="node"> | ||
| 457 | <title>_dl_fini</title> | ||
| 458 | <polygon fill="none" stroke="#000000" points="526.62,-2151.38 356.12,-2151.38 356.12,-2038.38 526.62,-2038.38 526.62,-2151.38"/> | ||
| 459 | <text text-anchor="middle" x="441.38" y="-2130.28" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 460 | <text text-anchor="middle" x="441.38" y="-2109.28" font-family="Arial" font-size="18.00" fill="#000000">_dl_fini</text> | ||
| 461 | <text text-anchor="middle" x="441.38" y="-2088.28" font-family="Arial" font-size="18.00" fill="#000000">1.06%</text> | ||
| 462 | <text text-anchor="middle" x="441.38" y="-2067.28" font-family="Arial" font-size="18.00" fill="#000000">(0.15%)</text> | ||
| 463 | <text text-anchor="middle" x="441.38" y="-2046.28" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 464 | </g> | ||
| 465 | <!-- __run_exit_handlers->_dl_fini --> | ||
| 466 | <g id="edge17" class="edge"> | ||
| 467 | <title>__run_exit_handlers->_dl_fini</title> | ||
| 468 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M441.38,-2235.26C441.38,-2209.61 441.38,-2179.24 441.38,-2153.41"/> | ||
| 469 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="441.94,-2153.47 441.38,-2151.87 440.82,-2153.47 441.94,-2153.47"/> | ||
| 470 | <text text-anchor="middle" x="466.5" y="-2209.65" font-family="Arial" font-size="18.00" fill="#000000">1.06%</text> | ||
| 471 | <text text-anchor="middle" x="466.5" y="-2188.65" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 472 | </g> | ||
| 473 | <!-- _dl_call_fini --> | ||
| 474 | <g id="node25" class="node"> | ||
| 475 | <title>_dl_call_fini</title> | ||
| 476 | <polygon fill="none" stroke="#000000" points="526.62,-1954 356.12,-1954 356.12,-1841 526.62,-1841 526.62,-1954"/> | ||
| 477 | <text text-anchor="middle" x="441.38" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 478 | <text text-anchor="middle" x="441.38" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_call_fini</text> | ||
| 479 | <text text-anchor="middle" x="441.38" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">0.61%</text> | ||
| 480 | <text text-anchor="middle" x="441.38" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(0.08%)</text> | ||
| 481 | <text text-anchor="middle" x="441.38" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 482 | </g> | ||
| 483 | <!-- _dl_fini->_dl_call_fini --> | ||
| 484 | <g id="edge26" class="edge"> | ||
| 485 | <title>_dl_fini->_dl_call_fini</title> | ||
| 486 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M441.38,-2037.89C441.38,-2012.24 441.38,-1981.87 441.38,-1956.03"/> | ||
| 487 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="441.94,-1956.09 441.38,-1954.49 440.82,-1956.09 441.94,-1956.09"/> | ||
| 488 | <text text-anchor="middle" x="466.5" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">0.61%</text> | ||
| 489 | <text text-anchor="middle" x="466.5" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 490 | </g> | ||
| 491 | <!-- __vfprintf_internal --> | ||
| 492 | <g id="node23" class="node"> | ||
| 493 | <title>__vfprintf_internal</title> | ||
| 494 | <polygon fill="none" stroke="#000000" points="268.88,-2151.38 111.88,-2151.38 111.88,-2038.38 268.88,-2038.38 268.88,-2151.38"/> | ||
| 495 | <text text-anchor="middle" x="190.38" y="-2130.28" font-family="Arial" font-size="18.00" fill="#000000">libc.so.6</text> | ||
| 496 | <text text-anchor="middle" x="190.38" y="-2109.28" font-family="Arial" font-size="18.00" fill="#000000">__vfprintf_internal</text> | ||
| 497 | <text text-anchor="middle" x="190.38" y="-2088.28" font-family="Arial" font-size="18.00" fill="#000000">2.20%</text> | ||
| 498 | <text text-anchor="middle" x="190.38" y="-2067.28" font-family="Arial" font-size="18.00" fill="#000000">(0.03%)</text> | ||
| 499 | <text text-anchor="middle" x="190.38" y="-2046.28" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 500 | </g> | ||
| 501 | <!-- __vfprintf_internal->__printf_buffer_to_file_done --> | ||
| 502 | <g id="edge18" class="edge"> | ||
| 503 | <title>__vfprintf_internal->__printf_buffer_to_file_done</title> | ||
| 504 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M180.92,-2037.89C176.6,-2012.34 171.5,-1982.11 167.14,-1956.34"/> | ||
| 505 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="167.86,-1956.35 166.83,-1954.49 166.48,-1956.58 167.86,-1956.35"/> | ||
| 506 | <text text-anchor="middle" x="200.5" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">2.06%</text> | ||
| 507 | <text text-anchor="middle" x="200.5" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 508 | </g> | ||
| 509 | <!-- _dl_cache_libcmp --> | ||
| 510 | <g id="node24" class="node"> | ||
| 511 | <title>_dl_cache_libcmp</title> | ||
| 512 | <polygon fill="none" stroke="#000000" points="1484.62,-113 1314.12,-113 1314.12,0 1484.62,0 1484.62,-113"/> | ||
| 513 | <text text-anchor="middle" x="1399.38" y="-91.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 514 | <text text-anchor="middle" x="1399.38" y="-70.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_cache_libcmp</text> | ||
| 515 | <text text-anchor="middle" x="1399.38" y="-49.9" font-family="Arial" font-size="18.00" fill="#000000">0.50%</text> | ||
| 516 | <text text-anchor="middle" x="1399.38" y="-28.9" font-family="Arial" font-size="18.00" fill="#000000">(0.50%)</text> | ||
| 517 | <text text-anchor="middle" x="1399.38" y="-7.9" font-family="Arial" font-size="18.00" fill="#000000">9×</text> | ||
| 518 | </g> | ||
| 519 | <!-- _dl_call_fini->0x0000000000001100 --> | ||
| 520 | <g id="edge19" class="edge"> | ||
| 521 | <title>_dl_call_fini->0x0000000000001100</title> | ||
| 522 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M441.38,-1840.51C441.38,-1821.96 441.38,-1801.3 441.38,-1782.66"/> | ||
| 523 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="441.94,-1782.93 441.38,-1781.33 440.82,-1782.93 441.94,-1782.93"/> | ||
| 524 | <text text-anchor="middle" x="466.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">0.51%</text> | ||
| 525 | <text text-anchor="middle" x="466.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 526 | </g> | ||
| 527 | <!-- _dl_catch_error --> | ||
| 528 | <g id="node26" class="node"> | ||
| 529 | <title>_dl_catch_error</title> | ||
| 530 | <polygon fill="none" stroke="#000000" points="1720.62,-1293 1550.12,-1293 1550.12,-1180 1720.62,-1180 1720.62,-1293"/> | ||
| 531 | <text text-anchor="middle" x="1635.38" y="-1271.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 532 | <text text-anchor="middle" x="1635.38" y="-1250.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_catch_error</text> | ||
| 533 | <text text-anchor="middle" x="1635.38" y="-1229.9" font-family="Arial" font-size="18.00" fill="#000000">1.88%</text> | ||
| 534 | <text text-anchor="middle" x="1635.38" y="-1208.9" font-family="Arial" font-size="18.00" fill="#000000">(0.02%)</text> | ||
| 535 | <text text-anchor="middle" x="1635.38" y="-1187.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 536 | </g> | ||
| 537 | <!-- _dl_catch_exception --> | ||
| 538 | <g id="node27" class="node"> | ||
| 539 | <title>_dl_catch_exception</title> | ||
| 540 | <polygon fill="none" stroke="#000000" points="1517,-1049 1339.75,-1049 1339.75,-936 1517,-936 1517,-1049"/> | ||
| 541 | <text text-anchor="middle" x="1428.38" y="-1027.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 542 | <text text-anchor="middle" x="1428.38" y="-1006.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_catch_exception</text> | ||
| 543 | <text text-anchor="middle" x="1428.38" y="-985.9" font-family="Arial" font-size="18.00" fill="#000000">5.50%</text> | ||
| 544 | <text text-anchor="middle" x="1428.38" y="-964.9" font-family="Arial" font-size="18.00" fill="#000000">(0.09%)</text> | ||
| 545 | <text text-anchor="middle" x="1428.38" y="-943.9" font-family="Arial" font-size="18.00" fill="#000000">3×</text> | ||
| 546 | </g> | ||
| 547 | <!-- _dl_catch_error->_dl_catch_exception --> | ||
| 548 | <g id="edge20" class="edge"> | ||
| 549 | <title>_dl_catch_error->_dl_catch_exception</title> | ||
| 550 | <path fill="none" stroke="#000000" stroke-width="0.15" d="M1587.63,-1179.68C1554.59,-1141.05 1510.74,-1089.79 1477.42,-1050.84"/> | ||
| 551 | <polygon fill="#000000" stroke="#000000" stroke-width="0.15" points="1477.98,-1050.47 1476.24,-1049.46 1476.97,-1051.34 1477.98,-1050.47"/> | ||
| 552 | <text text-anchor="middle" x="1604.5" y="-1118.4" font-family="Arial" font-size="18.00" fill="#000000">1.86%</text> | ||
| 553 | <text text-anchor="middle" x="1604.5" y="-1097.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 554 | </g> | ||
| 555 | <!-- map_doit --> | ||
| 556 | <g id="node28" class="node"> | ||
| 557 | <title>map_doit</title> | ||
| 558 | <polygon fill="none" stroke="#000000" points="1625.62,-805 1455.12,-805 1455.12,-692 1625.62,-692 1625.62,-805"/> | ||
| 559 | <text text-anchor="middle" x="1540.38" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 560 | <text text-anchor="middle" x="1540.38" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">map_doit</text> | ||
| 561 | <text text-anchor="middle" x="1540.38" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">1.81%</text> | ||
| 562 | <text text-anchor="middle" x="1540.38" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(0.01%)</text> | ||
| 563 | <text text-anchor="middle" x="1540.38" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 564 | </g> | ||
| 565 | <!-- _dl_catch_exception->map_doit --> | ||
| 566 | <g id="edge21" class="edge"> | ||
| 567 | <title>_dl_catch_exception->map_doit</title> | ||
| 568 | <path fill="none" stroke="#000000" stroke-width="0.14" d="M1457.18,-935.66C1458.61,-932.74 1460.02,-929.84 1461.38,-927 1480.35,-887.31 1500.49,-841.98 1515.69,-807.07"/> | ||
| 569 | <polygon fill="#000000" stroke="#000000" stroke-width="0.14" points="1516.26,-807.43 1516.41,-805.42 1515.04,-806.89 1516.26,-807.43"/> | ||
| 570 | <text text-anchor="middle" x="1535.5" y="-874.4" font-family="Arial" font-size="18.00" fill="#000000">1.81%</text> | ||
| 571 | <text text-anchor="middle" x="1535.5" y="-853.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 572 | </g> | ||
| 573 | <!-- openaux --> | ||
| 574 | <g id="node29" class="node"> | ||
| 575 | <title>openaux</title> | ||
| 576 | <polygon fill="none" stroke="#000000" points="1445.62,-805 1275.12,-805 1275.12,-692 1445.62,-692 1445.62,-805"/> | ||
| 577 | <text text-anchor="middle" x="1360.38" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 578 | <text text-anchor="middle" x="1360.38" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">openaux</text> | ||
| 579 | <text text-anchor="middle" x="1360.38" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">3.55%</text> | ||
| 580 | <text text-anchor="middle" x="1360.38" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(0.03%)</text> | ||
| 581 | <text text-anchor="middle" x="1360.38" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 582 | </g> | ||
| 583 | <!-- _dl_catch_exception->openaux --> | ||
| 584 | <g id="edge22" class="edge"> | ||
| 585 | <title>_dl_catch_exception->openaux</title> | ||
| 586 | <path fill="none" stroke="#000000" stroke-width="0.28" d="M1412.69,-935.68C1401.92,-897.36 1387.66,-846.6 1376.75,-807.77"/> | ||
| 587 | <polygon fill="#000000" stroke="#000000" stroke-width="0.28" points="1377.74,-807.81 1376.1,-805.46 1375.92,-808.32 1377.74,-807.81"/> | ||
| 588 | <text text-anchor="middle" x="1434.5" y="-874.4" font-family="Arial" font-size="18.00" fill="#000000">3.55%</text> | ||
| 589 | <text text-anchor="middle" x="1434.5" y="-853.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 590 | </g> | ||
| 591 | <!-- _dl_map_object --> | ||
| 592 | <g id="node42" class="node"> | ||
| 593 | <title>_dl_map_object</title> | ||
| 594 | <polygon fill="none" stroke="#000000" points="1487.62,-632 1317.12,-632 1317.12,-519 1487.62,-519 1487.62,-632"/> | ||
| 595 | <text text-anchor="middle" x="1402.38" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 596 | <text text-anchor="middle" x="1402.38" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_map_object</text> | ||
| 597 | <text text-anchor="middle" x="1402.38" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">5.32%</text> | ||
| 598 | <text text-anchor="middle" x="1402.38" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(0.32%)</text> | ||
| 599 | <text text-anchor="middle" x="1402.38" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">3×</text> | ||
| 600 | </g> | ||
| 601 | <!-- map_doit->_dl_map_object --> | ||
| 602 | <g id="edge65" class="edge"> | ||
| 603 | <title>map_doit->_dl_map_object</title> | ||
| 604 | <path fill="none" stroke="#000000" stroke-width="0.14" d="M1495.19,-691.51C1480.22,-672.96 1463.55,-652.3 1448.51,-633.66"/> | ||
| 605 | <polygon fill="#000000" stroke="#000000" stroke-width="0.14" points="1449.14,-633.39 1447.43,-632.33 1448.1,-634.22 1449.14,-633.39"/> | ||
| 606 | <text text-anchor="middle" x="1512.5" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">1.80%</text> | ||
| 607 | <text text-anchor="middle" x="1512.5" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 608 | </g> | ||
| 609 | <!-- openaux->_dl_map_object --> | ||
| 610 | <g id="edge66" class="edge"> | ||
| 611 | <title>openaux->_dl_map_object</title> | ||
| 612 | <path fill="none" stroke="#000000" stroke-width="0.28" d="M1374.13,-691.51C1378.61,-673.26 1383.6,-652.96 1388.11,-634.56"/> | ||
| 613 | <polygon fill="#000000" stroke="#000000" stroke-width="0.28" points="1388.94,-635.17 1388.66,-632.33 1387.1,-634.72 1388.94,-635.17"/> | ||
| 614 | <text text-anchor="middle" x="1410.5" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">3.52%</text> | ||
| 615 | <text text-anchor="middle" x="1410.5" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 616 | </g> | ||
| 617 | <!-- _dl_check_all_versions --> | ||
| 618 | <g id="node30" class="node"> | ||
| 619 | <title>_dl_check_all_versions</title> | ||
| 620 | <polygon fill="none" stroke="#000000" points="1299.5,-927 1101.25,-927 1101.25,-814 1299.5,-814 1299.5,-927"/> | ||
| 621 | <text text-anchor="middle" x="1200.38" y="-905.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 622 | <text text-anchor="middle" x="1200.38" y="-884.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_check_all_versions</text> | ||
| 623 | <text text-anchor="middle" x="1200.38" y="-863.9" font-family="Arial" font-size="18.00" fill="#000000">2.68%</text> | ||
| 624 | <text text-anchor="middle" x="1200.38" y="-842.9" font-family="Arial" font-size="18.00" fill="#000000">(0.05%)</text> | ||
| 625 | <text text-anchor="middle" x="1200.38" y="-821.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 626 | </g> | ||
| 627 | <!-- _dl_check_map_versions --> | ||
| 628 | <g id="node31" class="node"> | ||
| 629 | <title>_dl_check_map_versions</title> | ||
| 630 | <polygon fill="none" stroke="#000000" points="1308.12,-632 1092.62,-632 1092.62,-519 1308.12,-519 1308.12,-632"/> | ||
| 631 | <text text-anchor="middle" x="1200.38" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 632 | <text text-anchor="middle" x="1200.38" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_check_map_versions</text> | ||
| 633 | <text text-anchor="middle" x="1200.38" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">2.63%</text> | ||
| 634 | <text text-anchor="middle" x="1200.38" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(1.70%)</text> | ||
| 635 | <text text-anchor="middle" x="1200.38" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 636 | </g> | ||
| 637 | <!-- _dl_check_all_versions->_dl_check_map_versions --> | ||
| 638 | <g id="edge23" class="edge"> | ||
| 639 | <title>_dl_check_all_versions->_dl_check_map_versions</title> | ||
| 640 | <path fill="none" stroke="#000000" stroke-width="0.21" d="M1200.38,-813.7C1200.38,-762.28 1200.38,-686.27 1200.38,-634.24"/> | ||
| 641 | <polygon fill="#000000" stroke="#000000" stroke-width="0.21" points="1201.18,-634.39 1200.38,-632.09 1199.57,-634.39 1201.18,-634.39"/> | ||
| 642 | <text text-anchor="middle" x="1225.5" y="-752.4" font-family="Arial" font-size="18.00" fill="#000000">2.63%</text> | ||
| 643 | <text text-anchor="middle" x="1225.5" y="-731.4" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 644 | </g> | ||
| 645 | <!-- _dl_name_match_p --> | ||
| 646 | <g id="node32" class="node"> | ||
| 647 | <title>_dl_name_match_p</title> | ||
| 648 | <polygon fill="none" stroke="#000000" points="1210,-459 1038.75,-459 1038.75,-346 1210,-346 1210,-459"/> | ||
| 649 | <text text-anchor="middle" x="1124.38" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 650 | <text text-anchor="middle" x="1124.38" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_name_match_p</text> | ||
| 651 | <text text-anchor="middle" x="1124.38" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">1.29%</text> | ||
| 652 | <text text-anchor="middle" x="1124.38" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(0.27%)</text> | ||
| 653 | <text text-anchor="middle" x="1124.38" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">14×</text> | ||
| 654 | </g> | ||
| 655 | <!-- _dl_check_map_versions->_dl_name_match_p --> | ||
| 656 | <g id="edge24" class="edge"> | ||
| 657 | <title>_dl_check_map_versions->_dl_name_match_p</title> | ||
| 658 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1174.97,-518.58C1173.66,-515.68 1172.38,-512.81 1171.12,-510 1163.97,-493.97 1156.29,-476.55 1149.26,-460.53"/> | ||
| 659 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1149.91,-460.62 1148.75,-459.38 1148.88,-461.07 1149.91,-460.62"/> | ||
| 660 | <text text-anchor="middle" x="1195.5" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">0.65%</text> | ||
| 661 | <text text-anchor="middle" x="1195.5" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">7×</text> | ||
| 662 | </g> | ||
| 663 | <!-- strcmp --> | ||
| 664 | <g id="node33" class="node"> | ||
| 665 | <title>strcmp</title> | ||
| 666 | <polygon fill="none" stroke="#000000" points="1209.62,-286 1039.12,-286 1039.12,-173 1209.62,-173 1209.62,-286"/> | ||
| 667 | <text text-anchor="middle" x="1124.38" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 668 | <text text-anchor="middle" x="1124.38" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">strcmp</text> | ||
| 669 | <text text-anchor="middle" x="1124.38" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">4.54%</text> | ||
| 670 | <text text-anchor="middle" x="1124.38" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(4.54%)</text> | ||
| 671 | <text text-anchor="middle" x="1124.38" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">164×</text> | ||
| 672 | </g> | ||
| 673 | <!-- _dl_check_map_versions->strcmp --> | ||
| 674 | <g id="edge25" class="edge"> | ||
| 675 | <title>_dl_check_map_versions->strcmp</title> | ||
| 676 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1217.85,-518.78C1218.44,-515.83 1218.96,-512.89 1219.38,-510 1225.02,-470.83 1223.37,-371.37 1214.38,-346 1206.95,-325.06 1194.11,-304.95 1180.41,-287.55"/> | ||
| 677 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1180.85,-287.21 1179.42,-286.31 1179.97,-287.91 1180.85,-287.21"/> | ||
| 678 | <text text-anchor="middle" x="1247.5" y="-406.4" font-family="Arial" font-size="18.00" fill="#000000">0.17%</text> | ||
| 679 | <text text-anchor="middle" x="1247.5" y="-385.4" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 680 | </g> | ||
| 681 | <!-- _dl_name_match_p->strcmp --> | ||
| 682 | <g id="edge37" class="edge"> | ||
| 683 | <title>_dl_name_match_p->strcmp</title> | ||
| 684 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1124.38,-345.51C1124.38,-326.96 1124.38,-306.3 1124.38,-287.66"/> | ||
| 685 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1124.94,-287.93 1124.38,-286.33 1123.82,-287.93 1124.94,-287.93"/> | ||
| 686 | <text text-anchor="middle" x="1149.5" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">1.02%</text> | ||
| 687 | <text text-anchor="middle" x="1149.5" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">32×</text> | ||
| 688 | </g> | ||
| 689 | <!-- _dl_fixup->_dl_lookup_symbol_x --> | ||
| 690 | <g id="edge27" class="edge"> | ||
| 691 | <title>_dl_fixup->_dl_lookup_symbol_x</title> | ||
| 692 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M640.5,-935.68C697.65,-896.82 773.61,-845.19 831.04,-806.15"/> | ||
| 693 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="831.04,-806.82 832.05,-805.46 830.41,-805.9 831.04,-806.82"/> | ||
| 694 | <text text-anchor="middle" x="843.5" y="-874.4" font-family="Arial" font-size="18.00" fill="#000000">0.70%</text> | ||
| 695 | <text text-anchor="middle" x="843.5" y="-853.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 696 | </g> | ||
| 697 | <!-- do_lookup_x --> | ||
| 698 | <g id="node41" class="node"> | ||
| 699 | <title>do_lookup_x</title> | ||
| 700 | <polygon fill="none" stroke="#000000" points="1006.62,-632 836.12,-632 836.12,-519 1006.62,-519 1006.62,-632"/> | ||
| 701 | <text text-anchor="middle" x="921.38" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 702 | <text text-anchor="middle" x="921.38" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">do_lookup_x</text> | ||
| 703 | <text text-anchor="middle" x="921.38" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">23.49%</text> | ||
| 704 | <text text-anchor="middle" x="921.38" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(16.71%)</text> | ||
| 705 | <text text-anchor="middle" x="921.38" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">96×</text> | ||
| 706 | </g> | ||
| 707 | <!-- _dl_lookup_symbol_x->do_lookup_x --> | ||
| 708 | <g id="edge31" class="edge"> | ||
| 709 | <title>_dl_lookup_symbol_x->do_lookup_x</title> | ||
| 710 | <path fill="none" stroke="#000000" stroke-width="1.88" d="M916.67,-691.51C917.33,-675.33 918.06,-657.55 918.74,-640.91"/> | ||
| 711 | <polygon fill="#000000" stroke="#000000" stroke-width="1.88" points="921.22,-641.32 919.09,-634.33 916.39,-641.12 921.22,-641.32"/> | ||
| 712 | <text text-anchor="middle" x="948.38" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">23.49%</text> | ||
| 713 | <text text-anchor="middle" x="948.38" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">96×</text> | ||
| 714 | </g> | ||
| 715 | <!-- _dl_hwcaps_split_masked --> | ||
| 716 | <g id="node36" class="node"> | ||
| 717 | <title>_dl_hwcaps_split_masked</title> | ||
| 718 | <polygon fill="none" stroke="#000000" points="1541.5,-1293 1319.25,-1293 1319.25,-1180 1541.5,-1180 1541.5,-1293"/> | ||
| 719 | <text text-anchor="middle" x="1430.38" y="-1271.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 720 | <text text-anchor="middle" x="1430.38" y="-1250.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_hwcaps_split_masked</text> | ||
| 721 | <text text-anchor="middle" x="1430.38" y="-1229.9" font-family="Arial" font-size="18.00" fill="#000000">0.65%</text> | ||
| 722 | <text text-anchor="middle" x="1430.38" y="-1208.9" font-family="Arial" font-size="18.00" fill="#000000">(0.17%)</text> | ||
| 723 | <text text-anchor="middle" x="1430.38" y="-1187.9" font-family="Arial" font-size="18.00" fill="#000000">11×</text> | ||
| 724 | </g> | ||
| 725 | <!-- _dl_important_hwcaps --> | ||
| 726 | <g id="node37" class="node"> | ||
| 727 | <title>_dl_important_hwcaps</title> | ||
| 728 | <polygon fill="none" stroke="#000000" points="1533.88,-1537 1340.88,-1537 1340.88,-1424 1533.88,-1424 1533.88,-1537"/> | ||
| 729 | <text text-anchor="middle" x="1437.38" y="-1515.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 730 | <text text-anchor="middle" x="1437.38" y="-1494.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_important_hwcaps</text> | ||
| 731 | <text text-anchor="middle" x="1437.38" y="-1473.9" font-family="Arial" font-size="18.00" fill="#000000">0.98%</text> | ||
| 732 | <text text-anchor="middle" x="1437.38" y="-1452.9" font-family="Arial" font-size="18.00" fill="#000000">(0.15%)</text> | ||
| 733 | <text text-anchor="middle" x="1437.38" y="-1431.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 734 | </g> | ||
| 735 | <!-- _dl_important_hwcaps->_dl_hwcaps_split_masked --> | ||
| 736 | <g id="edge28" class="edge"> | ||
| 737 | <title>_dl_important_hwcaps->_dl_hwcaps_split_masked</title> | ||
| 738 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1435.76,-1423.68C1434.64,-1385.05 1433.16,-1333.79 1432.03,-1294.84"/> | ||
| 739 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1432.6,-1295.04 1431.99,-1293.46 1431.48,-1295.08 1432.6,-1295.04"/> | ||
| 740 | <text text-anchor="middle" x="1460.5" y="-1362.4" font-family="Arial" font-size="18.00" fill="#000000">0.43%</text> | ||
| 741 | <text text-anchor="middle" x="1460.5" y="-1341.4" font-family="Arial" font-size="18.00" fill="#000000">7×</text> | ||
| 742 | </g> | ||
| 743 | <!-- _dl_init_paths --> | ||
| 744 | <g id="node38" class="node"> | ||
| 745 | <title>_dl_init_paths</title> | ||
| 746 | <polygon fill="none" stroke="#000000" points="1517.62,-1781 1347.12,-1781 1347.12,-1668 1517.62,-1668 1517.62,-1781"/> | ||
| 747 | <text text-anchor="middle" x="1432.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 748 | <text text-anchor="middle" x="1432.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_init_paths</text> | ||
| 749 | <text text-anchor="middle" x="1432.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">1.10%</text> | ||
| 750 | <text text-anchor="middle" x="1432.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.07%)</text> | ||
| 751 | <text text-anchor="middle" x="1432.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 752 | </g> | ||
| 753 | <!-- _dl_init_paths->_dl_important_hwcaps --> | ||
| 754 | <g id="edge29" class="edge"> | ||
| 755 | <title>_dl_init_paths->_dl_important_hwcaps</title> | ||
| 756 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1433.53,-1667.68C1434.33,-1629.05 1435.39,-1577.79 1436.19,-1538.84"/> | ||
| 757 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1436.75,-1539.07 1436.22,-1537.46 1435.63,-1539.05 1436.75,-1539.07"/> | ||
| 758 | <text text-anchor="middle" x="1460.5" y="-1606.4" font-family="Arial" font-size="18.00" fill="#000000">0.98%</text> | ||
| 759 | <text text-anchor="middle" x="1460.5" y="-1585.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 760 | </g> | ||
| 761 | <!-- _dl_load_cache_lookup --> | ||
| 762 | <g id="node39" class="node"> | ||
| 763 | <title>_dl_load_cache_lookup</title> | ||
| 764 | <polygon fill="none" stroke="#000000" points="1499.62,-459 1299.12,-459 1299.12,-346 1499.62,-346 1499.62,-459"/> | ||
| 765 | <text text-anchor="middle" x="1399.38" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 766 | <text text-anchor="middle" x="1399.38" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_load_cache_lookup</text> | ||
| 767 | <text text-anchor="middle" x="1399.38" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">0.95%</text> | ||
| 768 | <text text-anchor="middle" x="1399.38" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(0.06%)</text> | ||
| 769 | <text text-anchor="middle" x="1399.38" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 770 | </g> | ||
| 771 | <!-- search_cache --> | ||
| 772 | <g id="node40" class="node"> | ||
| 773 | <title>search_cache</title> | ||
| 774 | <polygon fill="none" stroke="#000000" points="1484.62,-286 1314.12,-286 1314.12,-173 1484.62,-173 1484.62,-286"/> | ||
| 775 | <text text-anchor="middle" x="1399.38" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 776 | <text text-anchor="middle" x="1399.38" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">search_cache</text> | ||
| 777 | <text text-anchor="middle" x="1399.38" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">0.72%</text> | ||
| 778 | <text text-anchor="middle" x="1399.38" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(0.19%)</text> | ||
| 779 | <text text-anchor="middle" x="1399.38" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 780 | </g> | ||
| 781 | <!-- _dl_load_cache_lookup->search_cache --> | ||
| 782 | <g id="edge30" class="edge"> | ||
| 783 | <title>_dl_load_cache_lookup->search_cache</title> | ||
| 784 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1399.38,-345.51C1399.38,-326.96 1399.38,-306.3 1399.38,-287.66"/> | ||
| 785 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1399.94,-287.93 1399.38,-286.33 1398.82,-287.93 1399.94,-287.93"/> | ||
| 786 | <text text-anchor="middle" x="1424.5" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">0.72%</text> | ||
| 787 | <text text-anchor="middle" x="1424.5" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 788 | </g> | ||
| 789 | <!-- search_cache->_dl_cache_libcmp --> | ||
| 790 | <g id="edge68" class="edge"> | ||
| 791 | <title>search_cache->_dl_cache_libcmp</title> | ||
| 792 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1399.38,-172.51C1399.38,-153.96 1399.38,-133.3 1399.38,-114.66"/> | ||
| 793 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1399.94,-114.93 1399.38,-113.33 1398.82,-114.93 1399.94,-114.93"/> | ||
| 794 | <text text-anchor="middle" x="1424.5" y="-146.9" font-family="Arial" font-size="18.00" fill="#000000">0.50%</text> | ||
| 795 | <text text-anchor="middle" x="1424.5" y="-125.9" font-family="Arial" font-size="18.00" fill="#000000">9×</text> | ||
| 796 | </g> | ||
| 797 | <!-- check_match --> | ||
| 798 | <g id="node53" class="node"> | ||
| 799 | <title>check_match</title> | ||
| 800 | <polygon fill="none" stroke="#000000" points="1007.62,-459 837.12,-459 837.12,-346 1007.62,-346 1007.62,-459"/> | ||
| 801 | <text text-anchor="middle" x="922.38" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 802 | <text text-anchor="middle" x="922.38" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">check_match</text> | ||
| 803 | <text text-anchor="middle" x="922.38" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">7.13%</text> | ||
| 804 | <text text-anchor="middle" x="922.38" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(3.89%)</text> | ||
| 805 | <text text-anchor="middle" x="922.38" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">94×</text> | ||
| 806 | </g> | ||
| 807 | <!-- do_lookup_x->check_match --> | ||
| 808 | <g id="edge55" class="edge"> | ||
| 809 | <title>do_lookup_x->check_match</title> | ||
| 810 | <path fill="none" stroke="#000000" stroke-width="0.54" d="M921.7,-518.51C921.81,-500.7 921.92,-480.95 922.03,-462.91"/> | ||
| 811 | <polygon fill="#000000" stroke="#000000" stroke-width="0.54" points="923.32,-463.03 922.05,-459.33 920.73,-463.02 923.32,-463.03"/> | ||
| 812 | <text text-anchor="middle" x="946.5" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">6.78%</text> | ||
| 813 | <text text-anchor="middle" x="946.5" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">91×</text> | ||
| 814 | </g> | ||
| 815 | <!-- _dl_map_object->_dl_name_match_p --> | ||
| 816 | <g id="edge34" class="edge"> | ||
| 817 | <title>_dl_map_object->_dl_name_match_p</title> | ||
| 818 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1316.63,-521.62C1315.2,-520.74 1313.78,-519.87 1312.38,-519 1279.49,-498.76 1243.35,-476.55 1211.62,-457.06"/> | ||
| 819 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1212.15,-456.73 1210.5,-456.37 1211.57,-457.68 1212.15,-456.73"/> | ||
| 820 | <text text-anchor="middle" x="1321.5" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">0.64%</text> | ||
| 821 | <text text-anchor="middle" x="1321.5" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">7×</text> | ||
| 822 | </g> | ||
| 823 | <!-- _dl_map_object->_dl_load_cache_lookup --> | ||
| 824 | <g id="edge32" class="edge"> | ||
| 825 | <title>_dl_map_object->_dl_load_cache_lookup</title> | ||
| 826 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1401.39,-518.51C1401.07,-499.96 1400.7,-479.3 1400.38,-460.66"/> | ||
| 827 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1400.94,-460.92 1400.35,-459.33 1399.82,-460.94 1400.94,-460.92"/> | ||
| 828 | <text text-anchor="middle" x="1425.5" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">0.95%</text> | ||
| 829 | <text text-anchor="middle" x="1425.5" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 830 | </g> | ||
| 831 | <!-- _dl_map_object_from_fd --> | ||
| 832 | <g id="node43" class="node"> | ||
| 833 | <title>_dl_map_object_from_fd</title> | ||
| 834 | <polygon fill="none" stroke="#000000" points="1719.88,-459 1508.88,-459 1508.88,-346 1719.88,-346 1719.88,-459"/> | ||
| 835 | <text text-anchor="middle" x="1614.38" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 836 | <text text-anchor="middle" x="1614.38" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_map_object_from_fd</text> | ||
| 837 | <text text-anchor="middle" x="1614.38" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">2.99%</text> | ||
| 838 | <text text-anchor="middle" x="1614.38" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(1.91%)</text> | ||
| 839 | <text text-anchor="middle" x="1614.38" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 840 | </g> | ||
| 841 | <!-- _dl_map_object->_dl_map_object_from_fd --> | ||
| 842 | <g id="edge33" class="edge"> | ||
| 843 | <title>_dl_map_object->_dl_map_object_from_fd</title> | ||
| 844 | <path fill="none" stroke="#000000" stroke-width="0.24" d="M1471.79,-518.51C1494.79,-499.96 1520.4,-479.3 1543.51,-460.66"/> | ||
| 845 | <polygon fill="#000000" stroke="#000000" stroke-width="0.24" points="1543.82,-461.49 1545.16,-459.33 1542.77,-460.18 1543.82,-461.49"/> | ||
| 846 | <text text-anchor="middle" x="1558.5" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">2.99%</text> | ||
| 847 | <text text-anchor="middle" x="1558.5" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 848 | </g> | ||
| 849 | <!-- _dl_new_object --> | ||
| 850 | <g id="node45" class="node"> | ||
| 851 | <title>_dl_new_object</title> | ||
| 852 | <polygon fill="none" stroke="#000000" points="1774.62,-286 1604.12,-286 1604.12,-173 1774.62,-173 1774.62,-286"/> | ||
| 853 | <text text-anchor="middle" x="1689.38" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 854 | <text text-anchor="middle" x="1689.38" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_new_object</text> | ||
| 855 | <text text-anchor="middle" x="1689.38" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">0.74%</text> | ||
| 856 | <text text-anchor="middle" x="1689.38" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(0.46%)</text> | ||
| 857 | <text text-anchor="middle" x="1689.38" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">3×</text> | ||
| 858 | </g> | ||
| 859 | <!-- _dl_map_object_from_fd->_dl_new_object --> | ||
| 860 | <g id="edge36" class="edge"> | ||
| 861 | <title>_dl_map_object_from_fd->_dl_new_object</title> | ||
| 862 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1638.93,-345.51C1647.07,-326.96 1656.13,-306.3 1664.3,-287.66"/> | ||
| 863 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1664.76,-288.02 1664.89,-286.33 1663.73,-287.57 1664.76,-288.02"/> | ||
| 864 | <text text-anchor="middle" x="1685.5" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">0.54%</text> | ||
| 865 | <text text-anchor="middle" x="1685.5" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 866 | </g> | ||
| 867 | <!-- _dl_map_object_deps --> | ||
| 868 | <g id="node44" class="node"> | ||
| 869 | <title>_dl_map_object_deps</title> | ||
| 870 | <polygon fill="none" stroke="#000000" points="1424.62,-1659 1236.12,-1659 1236.12,-1546 1424.62,-1546 1424.62,-1659"/> | ||
| 871 | <text text-anchor="middle" x="1330.38" y="-1637.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 872 | <text text-anchor="middle" x="1330.38" y="-1616.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_map_object_deps</text> | ||
| 873 | <text text-anchor="middle" x="1330.38" y="-1595.9" font-family="Arial" font-size="18.00" fill="#000000">4.71%</text> | ||
| 874 | <text text-anchor="middle" x="1330.38" y="-1574.9" font-family="Arial" font-size="18.00" fill="#000000">(0.67%)</text> | ||
| 875 | <text text-anchor="middle" x="1330.38" y="-1553.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 876 | </g> | ||
| 877 | <!-- _dl_map_object_deps->_dl_catch_exception --> | ||
| 878 | <g id="edge35" class="edge"> | ||
| 879 | <title>_dl_map_object_deps->_dl_catch_exception</title> | ||
| 880 | <path fill="none" stroke="#000000" stroke-width="0.29" d="M1317.54,-1545.66C1301.08,-1463.72 1278.67,-1306.88 1314.38,-1180 1327.58,-1133.08 1356.23,-1086.3 1381.5,-1051.32"/> | ||
| 881 | <polygon fill="#000000" stroke="#000000" stroke-width="0.29" points="1382.19,-1051.99 1383.01,-1049.24 1380.66,-1050.88 1382.19,-1051.99"/> | ||
| 882 | <text text-anchor="middle" x="1323.5" y="-1362.4" font-family="Arial" font-size="18.00" fill="#000000">3.64%</text> | ||
| 883 | <text text-anchor="middle" x="1323.5" y="-1341.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 884 | </g> | ||
| 885 | <!-- _dl_receive_error --> | ||
| 886 | <g id="node46" class="node"> | ||
| 887 | <title>_dl_receive_error</title> | ||
| 888 | <polygon fill="none" stroke="#000000" points="1230.62,-1659 1060.12,-1659 1060.12,-1546 1230.62,-1546 1230.62,-1659"/> | ||
| 889 | <text text-anchor="middle" x="1145.38" y="-1637.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 890 | <text text-anchor="middle" x="1145.38" y="-1616.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_receive_error</text> | ||
| 891 | <text text-anchor="middle" x="1145.38" y="-1595.9" font-family="Arial" font-size="18.00" fill="#000000">2.71%</text> | ||
| 892 | <text text-anchor="middle" x="1145.38" y="-1574.9" font-family="Arial" font-size="18.00" fill="#000000">(0.02%)</text> | ||
| 893 | <text text-anchor="middle" x="1145.38" y="-1553.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 894 | </g> | ||
| 895 | <!-- version_check_doit --> | ||
| 896 | <g id="node47" class="node"> | ||
| 897 | <title>version_check_doit</title> | ||
| 898 | <polygon fill="none" stroke="#000000" points="1285.62,-1415 1115.12,-1415 1115.12,-1302 1285.62,-1302 1285.62,-1415"/> | ||
| 899 | <text text-anchor="middle" x="1200.38" y="-1393.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 900 | <text text-anchor="middle" x="1200.38" y="-1372.9" font-family="Arial" font-size="18.00" fill="#000000">version_check_doit</text> | ||
| 901 | <text text-anchor="middle" x="1200.38" y="-1351.9" font-family="Arial" font-size="18.00" fill="#000000">2.69%</text> | ||
| 902 | <text text-anchor="middle" x="1200.38" y="-1330.9" font-family="Arial" font-size="18.00" fill="#000000">(0.01%)</text> | ||
| 903 | <text text-anchor="middle" x="1200.38" y="-1309.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 904 | </g> | ||
| 905 | <!-- _dl_receive_error->version_check_doit --> | ||
| 906 | <g id="edge38" class="edge"> | ||
| 907 | <title>_dl_receive_error->version_check_doit</title> | ||
| 908 | <path fill="none" stroke="#000000" stroke-width="0.22" d="M1158.06,-1545.68C1166.81,-1507.2 1178.4,-1456.2 1187.24,-1417.3"/> | ||
| 909 | <polygon fill="#000000" stroke="#000000" stroke-width="0.22" points="1187.93,-1417.88 1187.66,-1415.46 1186.36,-1417.53 1187.93,-1417.88"/> | ||
| 910 | <text text-anchor="middle" x="1210.5" y="-1484.4" font-family="Arial" font-size="18.00" fill="#000000">2.69%</text> | ||
| 911 | <text text-anchor="middle" x="1210.5" y="-1463.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 912 | </g> | ||
| 913 | <!-- version_check_doit->_dl_check_all_versions --> | ||
| 914 | <g id="edge69" class="edge"> | ||
| 915 | <title>version_check_doit->_dl_check_all_versions</title> | ||
| 916 | <path fill="none" stroke="#000000" stroke-width="0.21" d="M1200.38,-1301.75C1200.38,-1208.98 1200.38,-1023.83 1200.38,-929.56"/> | ||
| 917 | <polygon fill="#000000" stroke="#000000" stroke-width="0.21" points="1201.18,-929.65 1200.38,-927.35 1199.57,-929.65 1201.18,-929.65"/> | ||
| 918 | <text text-anchor="middle" x="1225.5" y="-1118.4" font-family="Arial" font-size="18.00" fill="#000000">2.68%</text> | ||
| 919 | <text text-anchor="middle" x="1225.5" y="-1097.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 920 | </g> | ||
| 921 | <!-- _dl_relocate_object --> | ||
| 922 | <g id="node48" class="node"> | ||
| 923 | <title>_dl_relocate_object</title> | ||
| 924 | <polygon fill="none" stroke="#000000" points="1109.62,-1415 939.12,-1415 939.12,-1302 1109.62,-1302 1109.62,-1415"/> | ||
| 925 | <text text-anchor="middle" x="1024.38" y="-1393.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 926 | <text text-anchor="middle" x="1024.38" y="-1372.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_relocate_object</text> | ||
| 927 | <text text-anchor="middle" x="1024.38" y="-1351.9" font-family="Arial" font-size="18.00" fill="#000000">52.03%</text> | ||
| 928 | <text text-anchor="middle" x="1024.38" y="-1330.9" font-family="Arial" font-size="18.00" fill="#000000">(17.50%)</text> | ||
| 929 | <text text-anchor="middle" x="1024.38" y="-1309.9" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 930 | </g> | ||
| 931 | <!-- _dl_relocate_object->_dl_lookup_symbol_x --> | ||
| 932 | <g id="edge39" class="edge"> | ||
| 933 | <title>_dl_relocate_object->_dl_lookup_symbol_x</title> | ||
| 934 | <path fill="none" stroke="#000000" stroke-width="2.71" d="M1026.28,-1301.55C1027.33,-1241.03 1026.13,-1141.94 1011.38,-1058 996.37,-972.63 964.18,-878.02 941,-816.37"/> | ||
| 935 | <polygon fill="#000000" stroke="#000000" stroke-width="2.71" points="943.37,-814.9 937.78,-808.26 938,-816.94 943.37,-814.9"/> | ||
| 936 | <text text-anchor="middle" x="1053.38" y="-1118.4" font-family="Arial" font-size="18.00" fill="#000000">33.82%</text> | ||
| 937 | <text text-anchor="middle" x="1053.38" y="-1097.4" font-family="Arial" font-size="18.00" fill="#000000">90×</text> | ||
| 938 | </g> | ||
| 939 | <!-- _dl_sysdep_start->__GI___tunables_init --> | ||
| 940 | <g id="edge42" class="edge"> | ||
| 941 | <title>_dl_sysdep_start->__GI___tunables_init</title> | ||
| 942 | <path fill="none" stroke="#000000" stroke-width="1.73" d="M877.74,-2013.56C883.78,-1996.47 890.07,-1978.64 895.86,-1962.26"/> | ||
| 943 | <polygon fill="#000000" stroke="#000000" stroke-width="1.73" points="898.63,-1963.34 898.65,-1956.35 894.27,-1961.81 898.63,-1963.34"/> | ||
| 944 | <text text-anchor="middle" x="923.38" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">21.69%</text> | ||
| 945 | <text text-anchor="middle" x="923.38" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 946 | </g> | ||
| 947 | <!-- _dl_x86_init_cpu_features --> | ||
| 948 | <g id="node50" class="node"> | ||
| 949 | <title>_dl_x86_init_cpu_features</title> | ||
| 950 | <polygon fill="none" stroke="#000000" points="817.5,-1954 595.25,-1954 595.25,-1841 817.5,-1841 817.5,-1954"/> | ||
| 951 | <text text-anchor="middle" x="706.38" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 952 | <text text-anchor="middle" x="706.38" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">_dl_x86_init_cpu_features</text> | ||
| 953 | <text text-anchor="middle" x="706.38" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">5.17%</text> | ||
| 954 | <text text-anchor="middle" x="706.38" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(0.00%)</text> | ||
| 955 | <text text-anchor="middle" x="706.38" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 956 | </g> | ||
| 957 | <!-- _dl_sysdep_start->_dl_x86_init_cpu_features --> | ||
| 958 | <g id="edge43" class="edge"> | ||
| 959 | <title>_dl_sysdep_start->_dl_x86_init_cpu_features</title> | ||
| 960 | <path fill="none" stroke="#000000" stroke-width="0.41" d="M790.59,-2013.56C776.6,-1994.45 761.94,-1974.42 748.84,-1956.52"/> | ||
| 961 | <polygon fill="#000000" stroke="#000000" stroke-width="0.41" points="750.05,-1956.27 747.25,-1954.35 748.24,-1957.6 750.05,-1956.27"/> | ||
| 962 | <text text-anchor="middle" x="806.5" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">5.17%</text> | ||
| 963 | <text text-anchor="middle" x="806.5" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 964 | </g> | ||
| 965 | <!-- dl_main --> | ||
| 966 | <g id="node51" class="node"> | ||
| 967 | <title>dl_main</title> | ||
| 968 | <polygon fill="none" stroke="#000000" points="1317.62,-1954 1147.12,-1954 1147.12,-1841 1317.62,-1841 1317.62,-1954"/> | ||
| 969 | <text text-anchor="middle" x="1232.38" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 970 | <text text-anchor="middle" x="1232.38" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">dl_main</text> | ||
| 971 | <text text-anchor="middle" x="1232.38" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">67.74%</text> | ||
| 972 | <text text-anchor="middle" x="1232.38" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(1.03%)</text> | ||
| 973 | <text text-anchor="middle" x="1232.38" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 974 | </g> | ||
| 975 | <!-- _dl_sysdep_start->dl_main --> | ||
| 976 | <g id="edge44" class="edge"> | ||
| 977 | <title>_dl_sysdep_start->dl_main</title> | ||
| 978 | <path fill="none" stroke="#000000" stroke-width="5.42" d="M975.58,-2029.5C1026.11,-2003.72 1083.54,-1974.42 1131.25,-1950.09"/> | ||
| 979 | <polygon fill="#000000" stroke="#000000" stroke-width="5.42" points="1133.87,-1954.37 1141.71,-1944.2 1128.87,-1944.57 1133.87,-1954.37"/> | ||
| 980 | <text text-anchor="middle" x="1127.38" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">67.74%</text> | ||
| 981 | <text text-anchor="middle" x="1127.38" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 982 | </g> | ||
| 983 | <!-- init_cpu_features.constprop.0 --> | ||
| 984 | <g id="node52" class="node"> | ||
| 985 | <title>init_cpu_features.constprop.0</title> | ||
| 986 | <polygon fill="none" stroke="#000000" points="831,-1781 581.75,-1781 581.75,-1668 831,-1668 831,-1781"/> | ||
| 987 | <text text-anchor="middle" x="706.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 988 | <text text-anchor="middle" x="706.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">init_cpu_features.constprop.0</text> | ||
| 989 | <text text-anchor="middle" x="706.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">5.17%</text> | ||
| 990 | <text text-anchor="middle" x="706.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.28%)</text> | ||
| 991 | <text text-anchor="middle" x="706.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 992 | </g> | ||
| 993 | <!-- _dl_x86_init_cpu_features->init_cpu_features.constprop.0 --> | ||
| 994 | <g id="edge45" class="edge"> | ||
| 995 | <title>_dl_x86_init_cpu_features->init_cpu_features.constprop.0</title> | ||
| 996 | <path fill="none" stroke="#000000" stroke-width="0.41" d="M706.38,-1840.51C706.38,-1822.55 706.38,-1802.62 706.38,-1784.46"/> | ||
| 997 | <polygon fill="#000000" stroke="#000000" stroke-width="0.41" points="707.5,-1784.53 706.38,-1781.33 705.26,-1784.53 707.5,-1784.53"/> | ||
| 998 | <text text-anchor="middle" x="731.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">5.17%</text> | ||
| 999 | <text text-anchor="middle" x="731.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1000 | </g> | ||
| 1001 | <!-- dl_main->__rtld_malloc_init_real --> | ||
| 1002 | <g id="edge47" class="edge"> | ||
| 1003 | <title>dl_main->__rtld_malloc_init_real</title> | ||
| 1004 | <path fill="none" stroke="#000000" stroke-width="0.13" d="M1146.86,-1875.15C1080.76,-1858.38 999.45,-1837.03 993.12,-1832 977.12,-1819.26 965.06,-1800.74 956.28,-1782.71"/> | ||
| 1005 | <polygon fill="#000000" stroke="#000000" stroke-width="0.13" points="957,-1782.76 955.65,-1781.41 955.87,-1783.3 957,-1782.76"/> | ||
| 1006 | <text text-anchor="middle" x="1017.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">1.57%</text> | ||
| 1007 | <text text-anchor="middle" x="1017.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1008 | </g> | ||
| 1009 | <!-- dl_main->_dl_init_paths --> | ||
| 1010 | <g id="edge48" class="edge"> | ||
| 1011 | <title>dl_main->_dl_init_paths</title> | ||
| 1012 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1318.1,-1872.55C1341.4,-1862.88 1365.19,-1849.69 1383.38,-1832 1397.34,-1818.42 1407.71,-1800.11 1415.22,-1782.5"/> | ||
| 1013 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1415.65,-1782.93 1415.76,-1781.23 1414.62,-1782.49 1415.65,-1782.93"/> | ||
| 1014 | <text text-anchor="middle" x="1436.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">1.10%</text> | ||
| 1015 | <text text-anchor="middle" x="1436.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1016 | </g> | ||
| 1017 | <!-- dl_main->_dl_map_object_deps --> | ||
| 1018 | <g id="edge49" class="edge"> | ||
| 1019 | <title>dl_main->_dl_map_object_deps</title> | ||
| 1020 | <path fill="none" stroke="#000000" stroke-width="0.38" d="M1287.36,-1840.67C1301.43,-1822.99 1314.73,-1802.43 1322.38,-1781 1335.89,-1743.13 1337.71,-1697.81 1336.25,-1662.45"/> | ||
| 1021 | <polygon fill="#000000" stroke="#000000" stroke-width="0.38" points="1337.34,-1662.54 1336.12,-1659.49 1335.17,-1662.63 1337.34,-1662.54"/> | ||
| 1022 | <text text-anchor="middle" x="1342.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">4.71%</text> | ||
| 1023 | <text text-anchor="middle" x="1342.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1024 | </g> | ||
| 1025 | <!-- dl_main->_dl_new_object --> | ||
| 1026 | <g id="edge50" class="edge"> | ||
| 1027 | <title>dl_main->_dl_new_object</title> | ||
| 1028 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1318.1,-1885.28C1437.92,-1868.01 1647.11,-1831.52 1703.38,-1781 1724.4,-1762.12 1734.38,-1753.75 1734.38,-1725.5 1734.38,-1725.5 1734.38,-1725.5 1734.38,-401.5 1734.38,-362.52 1723.3,-320.13 1712.14,-287.31"/> | ||
| 1029 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1712.79,-287.48 1711.74,-286.14 1711.73,-287.84 1712.79,-287.48"/> | ||
| 1030 | <text text-anchor="middle" x="1759.5" y="-996.4" font-family="Arial" font-size="18.00" fill="#000000">0.20%</text> | ||
| 1031 | <text text-anchor="middle" x="1759.5" y="-975.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1032 | </g> | ||
| 1033 | <!-- dl_main->_dl_receive_error --> | ||
| 1034 | <g id="edge51" class="edge"> | ||
| 1035 | <title>dl_main->_dl_receive_error</title> | ||
| 1036 | <path fill="none" stroke="#000000" stroke-width="0.22" d="M1176.49,-1840.6C1162.5,-1822.99 1149.46,-1802.49 1142.38,-1781 1129.69,-1742.55 1130.82,-1696.81 1134.92,-1661.4"/> | ||
| 1037 | <polygon fill="#000000" stroke="#000000" stroke-width="0.22" points="1135.7,-1661.67 1135.17,-1659.29 1134.1,-1661.48 1135.7,-1661.67"/> | ||
| 1038 | <text text-anchor="middle" x="1193.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">2.71%</text> | ||
| 1039 | <text text-anchor="middle" x="1193.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1040 | </g> | ||
| 1041 | <!-- dl_main->_dl_relocate_object --> | ||
| 1042 | <g id="edge52" class="edge"> | ||
| 1043 | <title>dl_main->_dl_relocate_object</title> | ||
| 1044 | <path fill="none" stroke="#000000" stroke-width="4.16" d="M1146.67,-1855.07C1117.36,-1836.53 1087.44,-1811.82 1069.38,-1781 1035.63,-1723.45 1027.11,-1536.01 1025.01,-1431.52"/> | ||
| 1045 | <polygon fill="#000000" stroke="#000000" stroke-width="4.16" points="1028.62,-1431.63 1024.73,-1421.5 1021.2,-1431.76 1028.62,-1431.63"/> | ||
| 1046 | <text text-anchor="middle" x="1099.38" y="-1728.4" font-family="Arial" font-size="18.00" fill="#000000">52.03%</text> | ||
| 1047 | <text text-anchor="middle" x="1099.38" y="-1707.4" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 1048 | </g> | ||
| 1049 | <!-- handle_preload_list --> | ||
| 1050 | <g id="node54" class="node"> | ||
| 1051 | <title>handle_preload_list</title> | ||
| 1052 | <polygon fill="none" stroke="#000000" points="1698.62,-1781 1528.12,-1781 1528.12,-1668 1698.62,-1668 1698.62,-1781"/> | ||
| 1053 | <text text-anchor="middle" x="1613.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 1054 | <text text-anchor="middle" x="1613.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">handle_preload_list</text> | ||
| 1055 | <text text-anchor="middle" x="1613.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">2.11%</text> | ||
| 1056 | <text text-anchor="middle" x="1613.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.04%)</text> | ||
| 1057 | <text text-anchor="middle" x="1613.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1058 | </g> | ||
| 1059 | <!-- dl_main->handle_preload_list --> | ||
| 1060 | <g id="edge53" class="edge"> | ||
| 1061 | <title>dl_main->handle_preload_list</title> | ||
| 1062 | <path fill="none" stroke="#000000" stroke-width="0.17" d="M1318.03,-1880.02C1362.68,-1869.6 1417.43,-1853.9 1463.38,-1832 1491.22,-1818.73 1519.4,-1800.31 1543.7,-1782.52"/> | ||
| 1063 | <polygon fill="#000000" stroke="#000000" stroke-width="0.17" points="1543.89,-1783.3 1545.15,-1781.46 1543.02,-1782.11 1543.89,-1783.3"/> | ||
| 1064 | <text text-anchor="middle" x="1556.75" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">2.11%</text> | ||
| 1065 | <text text-anchor="middle" x="1556.75" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1066 | </g> | ||
| 1067 | <!-- init_tls --> | ||
| 1068 | <g id="node55" class="node"> | ||
| 1069 | <title>init_tls</title> | ||
| 1070 | <polygon fill="none" stroke="#000000" points="1317.62,-1781 1147.12,-1781 1147.12,-1668 1317.62,-1668 1317.62,-1781"/> | ||
| 1071 | <text text-anchor="middle" x="1232.38" y="-1759.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 1072 | <text text-anchor="middle" x="1232.38" y="-1738.9" font-family="Arial" font-size="18.00" fill="#000000">init_tls</text> | ||
| 1073 | <text text-anchor="middle" x="1232.38" y="-1717.9" font-family="Arial" font-size="18.00" fill="#000000">0.56%</text> | ||
| 1074 | <text text-anchor="middle" x="1232.38" y="-1696.9" font-family="Arial" font-size="18.00" fill="#000000">(0.05%)</text> | ||
| 1075 | <text text-anchor="middle" x="1232.38" y="-1675.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1076 | </g> | ||
| 1077 | <!-- dl_main->init_tls --> | ||
| 1078 | <g id="edge54" class="edge"> | ||
| 1079 | <title>dl_main->init_tls</title> | ||
| 1080 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M1232.38,-1840.51C1232.38,-1821.96 1232.38,-1801.3 1232.38,-1782.66"/> | ||
| 1081 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="1232.94,-1782.93 1232.38,-1781.33 1231.82,-1782.93 1232.94,-1782.93"/> | ||
| 1082 | <text text-anchor="middle" x="1257.5" y="-1814.9" font-family="Arial" font-size="18.00" fill="#000000">0.56%</text> | ||
| 1083 | <text text-anchor="middle" x="1257.5" y="-1793.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1084 | </g> | ||
| 1085 | <!-- handle_intel.constprop.0 --> | ||
| 1086 | <g id="node57" class="node"> | ||
| 1087 | <title>handle_intel.constprop.0</title> | ||
| 1088 | <polygon fill="none" stroke="#000000" points="810.75,-1537 602,-1537 602,-1424 810.75,-1424 810.75,-1537"/> | ||
| 1089 | <text text-anchor="middle" x="706.38" y="-1515.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 1090 | <text text-anchor="middle" x="706.38" y="-1494.9" font-family="Arial" font-size="18.00" fill="#000000">handle_intel.constprop.0</text> | ||
| 1091 | <text text-anchor="middle" x="706.38" y="-1473.9" font-family="Arial" font-size="18.00" fill="#000000">4.27%</text> | ||
| 1092 | <text text-anchor="middle" x="706.38" y="-1452.9" font-family="Arial" font-size="18.00" fill="#000000">(0.39%)</text> | ||
| 1093 | <text text-anchor="middle" x="706.38" y="-1431.9" font-family="Arial" font-size="18.00" fill="#000000">12×</text> | ||
| 1094 | </g> | ||
| 1095 | <!-- init_cpu_features.constprop.0->handle_intel.constprop.0 --> | ||
| 1096 | <g id="edge60" class="edge"> | ||
| 1097 | <title>init_cpu_features.constprop.0->handle_intel.constprop.0</title> | ||
| 1098 | <path fill="none" stroke="#000000" stroke-width="0.34" d="M706.38,-1667.68C706.38,-1629.51 706.38,-1579.01 706.38,-1540.23"/> | ||
| 1099 | <polygon fill="#000000" stroke="#000000" stroke-width="0.34" points="707.39,-1540.36 706.38,-1537.46 705.36,-1540.36 707.39,-1540.36"/> | ||
| 1100 | <text text-anchor="middle" x="731.5" y="-1606.4" font-family="Arial" font-size="18.00" fill="#000000">4.27%</text> | ||
| 1101 | <text text-anchor="middle" x="731.5" y="-1585.4" font-family="Arial" font-size="18.00" fill="#000000">12×</text> | ||
| 1102 | </g> | ||
| 1103 | <!-- check_match->strcmp --> | ||
| 1104 | <g id="edge46" class="edge"> | ||
| 1105 | <title>check_match->strcmp</title> | ||
| 1106 | <path fill="none" stroke="#000000" stroke-width="0.26" d="M988.52,-345.51C1010.34,-327.03 1034.64,-306.46 1056.58,-287.89"/> | ||
| 1107 | <polygon fill="#000000" stroke="#000000" stroke-width="0.26" points="1057.09,-288.61 1058.43,-286.33 1055.96,-287.27 1057.09,-288.61"/> | ||
| 1108 | <text text-anchor="middle" x="1072.5" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">3.24%</text> | ||
| 1109 | <text text-anchor="middle" x="1072.5" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">121×</text> | ||
| 1110 | </g> | ||
| 1111 | <!-- do_preload --> | ||
| 1112 | <g id="node56" class="node"> | ||
| 1113 | <title>do_preload</title> | ||
| 1114 | <polygon fill="none" stroke="#000000" points="1715.62,-1537 1545.12,-1537 1545.12,-1424 1715.62,-1424 1715.62,-1537"/> | ||
| 1115 | <text text-anchor="middle" x="1630.38" y="-1515.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 1116 | <text text-anchor="middle" x="1630.38" y="-1494.9" font-family="Arial" font-size="18.00" fill="#000000">do_preload</text> | ||
| 1117 | <text text-anchor="middle" x="1630.38" y="-1473.9" font-family="Arial" font-size="18.00" fill="#000000">1.90%</text> | ||
| 1118 | <text text-anchor="middle" x="1630.38" y="-1452.9" font-family="Arial" font-size="18.00" fill="#000000">(0.02%)</text> | ||
| 1119 | <text text-anchor="middle" x="1630.38" y="-1431.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1120 | </g> | ||
| 1121 | <!-- handle_preload_list->do_preload --> | ||
| 1122 | <g id="edge59" class="edge"> | ||
| 1123 | <title>handle_preload_list->do_preload</title> | ||
| 1124 | <path fill="none" stroke="#000000" stroke-width="0.15" d="M1617.3,-1667.68C1620,-1629.2 1623.58,-1578.2 1626.31,-1539.3"/> | ||
| 1125 | <polygon fill="#000000" stroke="#000000" stroke-width="0.15" points="1626.97,-1539.4 1626.44,-1537.46 1625.65,-1539.31 1626.97,-1539.4"/> | ||
| 1126 | <text text-anchor="middle" x="1650.5" y="-1606.4" font-family="Arial" font-size="18.00" fill="#000000">1.90%</text> | ||
| 1127 | <text text-anchor="middle" x="1650.5" y="-1585.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1128 | </g> | ||
| 1129 | <!-- do_preload->_dl_catch_error --> | ||
| 1130 | <g id="edge56" class="edge"> | ||
| 1131 | <title>do_preload->_dl_catch_error</title> | ||
| 1132 | <path fill="none" stroke="#000000" stroke-width="0.15" d="M1631.53,-1423.68C1632.32,-1385.2 1633.38,-1334.2 1634.18,-1295.3"/> | ||
| 1133 | <polygon fill="#000000" stroke="#000000" stroke-width="0.15" points="1634.84,-1295.37 1634.22,-1293.46 1633.51,-1295.35 1634.84,-1295.37"/> | ||
| 1134 | <text text-anchor="middle" x="1658.5" y="-1362.4" font-family="Arial" font-size="18.00" fill="#000000">1.88%</text> | ||
| 1135 | <text text-anchor="middle" x="1658.5" y="-1341.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1136 | </g> | ||
| 1137 | <!-- intel_check_word.constprop.0 --> | ||
| 1138 | <g id="node58" class="node"> | ||
| 1139 | <title>intel_check_word.constprop.0</title> | ||
| 1140 | <polygon fill="none" stroke="#000000" points="831.75,-1293 581,-1293 581,-1180 831.75,-1180 831.75,-1293"/> | ||
| 1141 | <text text-anchor="middle" x="706.38" y="-1271.9" font-family="Arial" font-size="18.00" fill="#000000">ld-linux-x86-64.so.2</text> | ||
| 1142 | <text text-anchor="middle" x="706.38" y="-1250.9" font-family="Arial" font-size="18.00" fill="#000000">intel_check_word.constprop.0</text> | ||
| 1143 | <text text-anchor="middle" x="706.38" y="-1229.9" font-family="Arial" font-size="18.00" fill="#000000">3.87%</text> | ||
| 1144 | <text text-anchor="middle" x="706.38" y="-1208.9" font-family="Arial" font-size="18.00" fill="#000000">(3.87%)</text> | ||
| 1145 | <text text-anchor="middle" x="706.38" y="-1187.9" font-family="Arial" font-size="18.00" fill="#000000">26×</text> | ||
| 1146 | </g> | ||
| 1147 | <!-- handle_intel.constprop.0->intel_check_word.constprop.0 --> | ||
| 1148 | <g id="edge58" class="edge"> | ||
| 1149 | <title>handle_intel.constprop.0->intel_check_word.constprop.0</title> | ||
| 1150 | <path fill="none" stroke="#000000" stroke-width="0.31" d="M706.38,-1423.68C706.38,-1385.51 706.38,-1335.01 706.38,-1296.23"/> | ||
| 1151 | <polygon fill="#000000" stroke="#000000" stroke-width="0.31" points="707.36,-1296.26 706.38,-1293.46 705.4,-1296.26 707.36,-1296.26"/> | ||
| 1152 | <text text-anchor="middle" x="731.5" y="-1362.4" font-family="Arial" font-size="18.00" fill="#000000">3.87%</text> | ||
| 1153 | <text text-anchor="middle" x="731.5" y="-1341.4" font-family="Arial" font-size="18.00" fill="#000000">26×</text> | ||
| 1154 | </g> | ||
| 1155 | <!-- printf->__vfprintf_internal --> | ||
| 1156 | <g id="edge67" class="edge"> | ||
| 1157 | <title>printf->__vfprintf_internal</title> | ||
| 1158 | <path fill="none" stroke="#000000" stroke-width="0.18" d="M203.93,-2235.26C201.45,-2209.72 198.51,-2179.48 196,-2153.72"/> | ||
| 1159 | <polygon fill="#000000" stroke="#000000" stroke-width="0.18" points="196.76,-2153.89 195.82,-2151.87 195.29,-2154.03 196.76,-2153.89"/> | ||
| 1160 | <text text-anchor="middle" x="228.5" y="-2209.65" font-family="Arial" font-size="18.00" fill="#000000">2.20%</text> | ||
| 1161 | <text text-anchor="middle" x="228.5" y="-2188.65" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 1162 | </g> | ||
| 1163 | </g> | ||
| 1164 | </svg> | ||
diff --git a/static/assets/posts/valgrind-callgrind-svg/out.zig.svg b/static/assets/posts/valgrind-callgrind-svg/out.zig.svg new file mode 100644 index 0000000..7a13d3b --- /dev/null +++ b/static/assets/posts/valgrind-callgrind-svg/out.zig.svg | |||
| @@ -0,0 +1,912 @@ | |||
| 1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
| 2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" | ||
| 3 | "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
| 4 | <!-- Generated by graphviz version 8.1.0 (20230707.0739) | ||
| 5 | --> | ||
| 6 | <!-- Pages: 1 --> | ||
| 7 | <svg width="3833pt" height="2470pt" | ||
| 8 | viewBox="0.00 0.00 3832.50 2470.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> | ||
| 9 | <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 2466)"> | ||
| 10 | <polygon fill="white" stroke="none" points="-4,4 -4,-2466 3828.5,-2466 3828.5,4 -4,4"/> | ||
| 11 | <!-- (below main) --> | ||
| 12 | <g id="node1" class="node"> | ||
| 13 | <title>(below main)</title> | ||
| 14 | <polygon fill="none" stroke="#000000" points="3357.62,-2462 3171.38,-2462 3171.38,-2281.5 3357.62,-2281.5 3357.62,-2462"/> | ||
| 15 | <text text-anchor="middle" x="3264.5" y="-2429.5" font-family="Arial" font-size="30.00" fill="#000000">zig-hi</text> | ||
| 16 | <text text-anchor="middle" x="3264.5" y="-2395" font-family="Arial" font-size="30.00" fill="#000000">(below main)</text> | ||
| 17 | <text text-anchor="middle" x="3264.5" y="-2360.5" font-family="Arial" font-size="30.00" fill="#000000">100.00%</text> | ||
| 18 | <text text-anchor="middle" x="3264.5" y="-2326" font-family="Arial" font-size="30.00" fill="#000000">(0.06%)</text> | ||
| 19 | <text text-anchor="middle" x="3264.5" y="-2291.5" font-family="Arial" font-size="30.00" fill="#000000">0×</text> | ||
| 20 | </g> | ||
| 21 | <!-- start.posixCallMainAndExit --> | ||
| 22 | <g id="node2" class="node"> | ||
| 23 | <title>start.posixCallMainAndExit</title> | ||
| 24 | <polygon fill="none" stroke="#000000" points="3450.25,-2194.5 3078.75,-2194.5 3078.75,-2014 3450.25,-2014 3450.25,-2194.5"/> | ||
| 25 | <text text-anchor="middle" x="3264.5" y="-2162.04" font-family="Arial" font-size="29.96" fill="#000000">zig-hi</text> | ||
| 26 | <text text-anchor="middle" x="3264.5" y="-2127.54" font-family="Arial" font-size="29.96" fill="#000000">start.posixCallMainAndExit</text> | ||
| 27 | <text text-anchor="middle" x="3264.5" y="-2093.04" font-family="Arial" font-size="29.96" fill="#000000">99.94%</text> | ||
| 28 | <text text-anchor="middle" x="3264.5" y="-2058.54" font-family="Arial" font-size="29.96" fill="#000000">(27.22%)</text> | ||
| 29 | <text text-anchor="middle" x="3264.5" y="-2024.04" font-family="Arial" font-size="29.96" fill="#000000">1×</text> | ||
| 30 | </g> | ||
| 31 | <!-- (below main)->start.posixCallMainAndExit --> | ||
| 32 | <g id="edge1" class="edge"> | ||
| 33 | <title>(below main)->start.posixCallMainAndExit</title> | ||
| 34 | <path fill="none" stroke="#000000" stroke-width="7.99" d="M3264.5,-2281.23C3264.5,-2259.91 3264.5,-2236.92 3264.5,-2214.81"/> | ||
| 35 | <polygon fill="#000000" stroke="#000000" stroke-width="7.99" points="3274.36,-2214.93 3264.5,-2200.83 3254.64,-2214.93 3274.36,-2214.93"/> | ||
| 36 | <text text-anchor="middle" x="3315.12" y="-2244.04" font-family="Arial" font-size="29.96" fill="#000000">99.94%</text> | ||
| 37 | <text text-anchor="middle" x="3315.12" y="-2209.54" font-family="Arial" font-size="29.96" fill="#000000">1×</text> | ||
| 38 | </g> | ||
| 39 | <!-- debug.maybeEnableSegfaultHandler --> | ||
| 40 | <g id="node13" class="node"> | ||
| 41 | <title>debug.maybeEnableSegfaultHandler</title> | ||
| 42 | <polygon fill="none" stroke="#000000" points="3688.88,-1954 3384.12,-1954 3384.12,-1841 3688.88,-1841 3688.88,-1954"/> | ||
| 43 | <text text-anchor="middle" x="3536.5" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 44 | <text text-anchor="middle" x="3536.5" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">debug.maybeEnableSegfaultHandler</text> | ||
| 45 | <text text-anchor="middle" x="3536.5" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">25.54%</text> | ||
| 46 | <text text-anchor="middle" x="3536.5" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(0.08%)</text> | ||
| 47 | <text text-anchor="middle" x="3536.5" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 48 | </g> | ||
| 49 | <!-- start.posixCallMainAndExit->debug.maybeEnableSegfaultHandler --> | ||
| 50 | <g id="edge56" class="edge"> | ||
| 51 | <title>start.posixCallMainAndExit->debug.maybeEnableSegfaultHandler</title> | ||
| 52 | <path fill="none" stroke="#000000" stroke-width="2.04" d="M3383.41,-2013.74C3407.45,-1995.64 3432.21,-1977 3454.63,-1960.13"/> | ||
| 53 | <polygon fill="#000000" stroke="#000000" stroke-width="2.04" points="3456.28,-1961.49 3460.46,-1955.24 3453.29,-1957.52 3456.28,-1961.49"/> | ||
| 54 | <text text-anchor="middle" x="3479.5" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">25.54%</text> | ||
| 55 | <text text-anchor="middle" x="3479.5" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 56 | </g> | ||
| 57 | <!-- hi.main --> | ||
| 58 | <g id="node21" class="node"> | ||
| 59 | <title>hi.main</title> | ||
| 60 | <polygon fill="none" stroke="#000000" points="2676.62,-1954 2598.38,-1954 2598.38,-1841 2676.62,-1841 2676.62,-1954"/> | ||
| 61 | <text text-anchor="middle" x="2637.5" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 62 | <text text-anchor="middle" x="2637.5" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">hi.main</text> | ||
| 63 | <text text-anchor="middle" x="2637.5" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">9.79%</text> | ||
| 64 | <text text-anchor="middle" x="2637.5" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(0.10%)</text> | ||
| 65 | <text text-anchor="middle" x="2637.5" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 66 | </g> | ||
| 67 | <!-- start.posixCallMainAndExit->hi.main --> | ||
| 68 | <g id="edge57" class="edge"> | ||
| 69 | <title>start.posixCallMainAndExit->hi.main</title> | ||
| 70 | <path fill="none" stroke="#000000" stroke-width="0.78" d="M3078.33,-2086.94C2939.66,-2071.81 2764.37,-2045.45 2704.25,-2005 2687.23,-1993.55 2673.7,-1976.14 2663.4,-1958.69"/> | ||
| 71 | <polygon fill="#000000" stroke="#000000" stroke-width="0.78" points="2664.38,-1958.31 2660.86,-1955.26 2661.71,-1959.84 2664.38,-1958.31"/> | ||
| 72 | <text text-anchor="middle" x="2729.62" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">9.79%</text> | ||
| 73 | <text text-anchor="middle" x="2729.62" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 74 | </g> | ||
| 75 | <!-- os.linux.tls.initStaticTLS --> | ||
| 76 | <g id="node35" class="node"> | ||
| 77 | <title>os.linux.tls.initStaticTLS</title> | ||
| 78 | <polygon fill="none" stroke="#000000" points="3367,-1954 3162,-1954 3162,-1841 3367,-1841 3367,-1954"/> | ||
| 79 | <text text-anchor="middle" x="3264.5" y="-1932.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 80 | <text text-anchor="middle" x="3264.5" y="-1911.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.tls.initStaticTLS</text> | ||
| 81 | <text text-anchor="middle" x="3264.5" y="-1890.9" font-family="Arial" font-size="18.00" fill="#000000">23.15%</text> | ||
| 82 | <text text-anchor="middle" x="3264.5" y="-1869.9" font-family="Arial" font-size="18.00" fill="#000000">(0.91%)</text> | ||
| 83 | <text text-anchor="middle" x="3264.5" y="-1848.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 84 | </g> | ||
| 85 | <!-- start.posixCallMainAndExit->os.linux.tls.initStaticTLS --> | ||
| 86 | <g id="edge58" class="edge"> | ||
| 87 | <title>start.posixCallMainAndExit->os.linux.tls.initStaticTLS</title> | ||
| 88 | <path fill="none" stroke="#000000" stroke-width="1.85" d="M3264.5,-2013.74C3264.5,-1996.67 3264.5,-1979.12 3264.5,-1963.02"/> | ||
| 89 | <polygon fill="#000000" stroke="#000000" stroke-width="1.85" points="3266.88,-1963.04 3264.5,-1956.24 3262.12,-1963.04 3266.88,-1963.04"/> | ||
| 90 | <text text-anchor="middle" x="3294.5" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">23.15%</text> | ||
| 91 | <text text-anchor="middle" x="3294.5" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 92 | </g> | ||
| 93 | <!-- os.maybeIgnoreSigpipe --> | ||
| 94 | <g id="node40" class="node"> | ||
| 95 | <title>os.maybeIgnoreSigpipe</title> | ||
| 96 | <polygon fill="none" stroke="#000000" points="3824.5,-1832 3622.5,-1832 3622.5,-1719 3824.5,-1719 3824.5,-1832"/> | ||
| 97 | <text text-anchor="middle" x="3723.5" y="-1810.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 98 | <text text-anchor="middle" x="3723.5" y="-1789.9" font-family="Arial" font-size="18.00" fill="#000000">os.maybeIgnoreSigpipe</text> | ||
| 99 | <text text-anchor="middle" x="3723.5" y="-1768.9" font-family="Arial" font-size="18.00" fill="#000000">6.09%</text> | ||
| 100 | <text text-anchor="middle" x="3723.5" y="-1747.9" font-family="Arial" font-size="18.00" fill="#000000">(0.32%)</text> | ||
| 101 | <text text-anchor="middle" x="3723.5" y="-1726.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 102 | </g> | ||
| 103 | <!-- start.posixCallMainAndExit->os.maybeIgnoreSigpipe --> | ||
| 104 | <g id="edge59" class="edge"> | ||
| 105 | <title>start.posixCallMainAndExit->os.maybeIgnoreSigpipe</title> | ||
| 106 | <path fill="none" stroke="#000000" stroke-width="0.49" d="M3450.63,-2082.1C3536.78,-2062.65 3633.18,-2025.37 3693.5,-1954 3720.97,-1921.5 3727.71,-1873.35 3727.99,-1835.4"/> | ||
| 107 | <polygon fill="#000000" stroke="#000000" stroke-width="0.49" points="3729.22,-1835.73 3728,-1832.22 3726.77,-1835.72 3729.22,-1835.73"/> | ||
| 108 | <text text-anchor="middle" x="3707.62" y="-1987.9" font-family="Arial" font-size="18.00" fill="#000000">6.09%</text> | ||
| 109 | <text text-anchor="middle" x="3707.62" y="-1966.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 110 | </g> | ||
| 111 | <!-- start.expandStackSize --> | ||
| 112 | <g id="node42" class="node"> | ||
| 113 | <title>start.expandStackSize</title> | ||
| 114 | <polygon fill="none" stroke="#000000" points="2918.38,-805 2724.62,-805 2724.62,-692 2918.38,-692 2918.38,-805"/> | ||
| 115 | <text text-anchor="middle" x="2821.5" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 116 | <text text-anchor="middle" x="2821.5" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">start.expandStackSize</text> | ||
| 117 | <text text-anchor="middle" x="2821.5" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">7.92%</text> | ||
| 118 | <text text-anchor="middle" x="2821.5" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(4.03%)</text> | ||
| 119 | <text text-anchor="middle" x="2821.5" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 120 | </g> | ||
| 121 | <!-- start.posixCallMainAndExit->start.expandStackSize --> | ||
| 122 | <g id="edge60" class="edge"> | ||
| 123 | <title>start.posixCallMainAndExit->start.expandStackSize</title> | ||
| 124 | <path fill="none" stroke="#000000" stroke-width="0.63" d="M3078.27,-2063.65C2935.06,-2027.65 2761.5,-1969.39 2761.5,-1898.5 2761.5,-1898.5 2761.5,-1898.5 2761.5,-1408.5 2761.5,-1329.51 2748.71,-1306.92 2770.5,-1231 2788.89,-1166.94 2826.74,-1164.51 2843.5,-1100 2856.13,-1051.39 2845.82,-1037.17 2843.5,-987 2840.69,-926.12 2833.84,-856.75 2828.52,-808.77"/> | ||
| 125 | <polygon fill="#000000" stroke="#000000" stroke-width="0.63" points="2829.94,-808.89 2828.11,-805.06 2827.16,-809.19 2829.94,-808.89"/> | ||
| 126 | <text text-anchor="middle" x="2786.62" y="-1413.4" font-family="Arial" font-size="18.00" fill="#000000">7.92%</text> | ||
| 127 | <text text-anchor="middle" x="2786.62" y="-1392.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 128 | </g> | ||
| 129 | <!-- Thread.LinuxThreadImpl.getCurrentId --> | ||
| 130 | <g id="node3" class="node"> | ||
| 131 | <title>Thread.LinuxThreadImpl.getCurrentId</title> | ||
| 132 | <polygon fill="none" stroke="#000000" points="2615.38,-978 2301.62,-978 2301.62,-865 2615.38,-865 2615.38,-978"/> | ||
| 133 | <text text-anchor="middle" x="2458.5" y="-956.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 134 | <text text-anchor="middle" x="2458.5" y="-935.9" font-family="Arial" font-size="18.00" fill="#000000">Thread.LinuxThreadImpl.getCurrentId</text> | ||
| 135 | <text text-anchor="middle" x="2458.5" y="-914.9" font-family="Arial" font-size="18.00" fill="#000000">0.73%</text> | ||
| 136 | <text text-anchor="middle" x="2458.5" y="-893.9" font-family="Arial" font-size="18.00" fill="#000000">(0.49%)</text> | ||
| 137 | <text text-anchor="middle" x="2458.5" y="-872.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 138 | </g> | ||
| 139 | <!-- Thread.Mutex.FutexImpl.lock --> | ||
| 140 | <g id="node4" class="node"> | ||
| 141 | <title>Thread.Mutex.FutexImpl.lock</title> | ||
| 142 | <polygon fill="none" stroke="#000000" points="2363,-1222 2116,-1222 2116,-1109 2363,-1109 2363,-1222"/> | ||
| 143 | <text text-anchor="middle" x="2239.5" y="-1200.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 144 | <text text-anchor="middle" x="2239.5" y="-1179.9" font-family="Arial" font-size="18.00" fill="#000000">Thread.Mutex.FutexImpl.lock</text> | ||
| 145 | <text text-anchor="middle" x="2239.5" y="-1158.9" font-family="Arial" font-size="18.00" fill="#000000">0.94%</text> | ||
| 146 | <text text-anchor="middle" x="2239.5" y="-1137.9" font-family="Arial" font-size="18.00" fill="#000000">(0.94%)</text> | ||
| 147 | <text text-anchor="middle" x="2239.5" y="-1116.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 148 | </g> | ||
| 149 | <!-- Thread.Mutex.FutexImpl.unlock --> | ||
| 150 | <g id="node5" class="node"> | ||
| 151 | <title>Thread.Mutex.FutexImpl.unlock</title> | ||
| 152 | <polygon fill="none" stroke="#000000" points="2842.75,-1100 2576.25,-1100 2576.25,-987 2842.75,-987 2842.75,-1100"/> | ||
| 153 | <text text-anchor="middle" x="2709.5" y="-1078.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 154 | <text text-anchor="middle" x="2709.5" y="-1057.9" font-family="Arial" font-size="18.00" fill="#000000">Thread.Mutex.FutexImpl.unlock</text> | ||
| 155 | <text text-anchor="middle" x="2709.5" y="-1036.9" font-family="Arial" font-size="18.00" fill="#000000">0.78%</text> | ||
| 156 | <text text-anchor="middle" x="2709.5" y="-1015.9" font-family="Arial" font-size="18.00" fill="#000000">(0.54%)</text> | ||
| 157 | <text text-anchor="middle" x="2709.5" y="-994.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 158 | </g> | ||
| 159 | <!-- debug.assert --> | ||
| 160 | <g id="node6" class="node"> | ||
| 161 | <title>debug.assert</title> | ||
| 162 | <polygon fill="none" stroke="#000000" points="3014.88,-632 2896.12,-632 2896.12,-519 3014.88,-519 3014.88,-632"/> | ||
| 163 | <text text-anchor="middle" x="2955.5" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 164 | <text text-anchor="middle" x="2955.5" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">debug.assert</text> | ||
| 165 | <text text-anchor="middle" x="2955.5" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">6.46%</text> | ||
| 166 | <text text-anchor="middle" x="2955.5" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(6.46%)</text> | ||
| 167 | <text text-anchor="middle" x="2955.5" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">27×</text> | ||
| 168 | </g> | ||
| 169 | <!-- Thread.Mutex.FutexImpl.unlock->debug.assert --> | ||
| 170 | <g id="edge2" class="edge"> | ||
| 171 | <title>Thread.Mutex.FutexImpl.unlock->debug.assert</title> | ||
| 172 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2704.08,-986.53C2696.85,-899.79 2688.38,-738.07 2720.5,-692 2755.05,-642.44 2788.7,-658.59 2846.5,-641 2865.18,-635.31 2871.94,-640.54 2889.5,-632 2891.25,-631.15 2892.99,-630.24 2894.72,-629.28"/> | ||
| 173 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2894.8,-629.88 2895.92,-628.61 2894.25,-628.91 2894.8,-629.88"/> | ||
| 174 | <text text-anchor="middle" x="2723.62" y="-838.9" font-family="Arial" font-size="18.00" fill="#000000">0.24%</text> | ||
| 175 | <text text-anchor="middle" x="2723.62" y="-817.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 176 | </g> | ||
| 177 | <!-- Thread.Mutex.lock --> | ||
| 178 | <g id="node7" class="node"> | ||
| 179 | <title>Thread.Mutex.lock</title> | ||
| 180 | <polygon fill="none" stroke="#000000" points="2507,-1466 2344,-1466 2344,-1353 2507,-1353 2507,-1466"/> | ||
| 181 | <text text-anchor="middle" x="2425.5" y="-1444.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 182 | <text text-anchor="middle" x="2425.5" y="-1423.9" font-family="Arial" font-size="18.00" fill="#000000">Thread.Mutex.lock</text> | ||
| 183 | <text text-anchor="middle" x="2425.5" y="-1402.9" font-family="Arial" font-size="18.00" fill="#000000">2.31%</text> | ||
| 184 | <text text-anchor="middle" x="2425.5" y="-1381.9" font-family="Arial" font-size="18.00" fill="#000000">(0.78%)</text> | ||
| 185 | <text text-anchor="middle" x="2425.5" y="-1360.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 186 | </g> | ||
| 187 | <!-- Thread.Mutex.lock->Thread.Mutex.FutexImpl.lock --> | ||
| 188 | <g id="edge3" class="edge"> | ||
| 189 | <title>Thread.Mutex.lock->Thread.Mutex.FutexImpl.lock</title> | ||
| 190 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2380.98,-1352.62C2378.7,-1349.71 2376.44,-1346.82 2374.25,-1344 2343.17,-1303.99 2308.63,-1258.47 2282.3,-1223.54"/> | ||
| 191 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2282.78,-1223.25 2281.37,-1222.3 2281.88,-1223.92 2282.78,-1223.25"/> | ||
| 192 | <text text-anchor="middle" x="2399.62" y="-1291.4" font-family="Arial" font-size="18.00" fill="#000000">0.94%</text> | ||
| 193 | <text text-anchor="middle" x="2399.62" y="-1270.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 194 | </g> | ||
| 195 | <!-- Thread.getCurrentId --> | ||
| 196 | <g id="node8" class="node"> | ||
| 197 | <title>Thread.getCurrentId</title> | ||
| 198 | <polygon fill="none" stroke="#000000" points="2548.75,-1222 2372.25,-1222 2372.25,-1109 2548.75,-1109 2548.75,-1222"/> | ||
| 199 | <text text-anchor="middle" x="2460.5" y="-1200.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 200 | <text text-anchor="middle" x="2460.5" y="-1179.9" font-family="Arial" font-size="18.00" fill="#000000">Thread.getCurrentId</text> | ||
| 201 | <text text-anchor="middle" x="2460.5" y="-1158.9" font-family="Arial" font-size="18.00" fill="#000000">0.89%</text> | ||
| 202 | <text text-anchor="middle" x="2460.5" y="-1137.9" font-family="Arial" font-size="18.00" fill="#000000">(0.16%)</text> | ||
| 203 | <text text-anchor="middle" x="2460.5" y="-1116.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 204 | </g> | ||
| 205 | <!-- Thread.Mutex.lock->Thread.getCurrentId --> | ||
| 206 | <g id="edge4" class="edge"> | ||
| 207 | <title>Thread.Mutex.lock->Thread.getCurrentId</title> | ||
| 208 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2425.21,-1352.79C2426,-1317.55 2428.85,-1271.21 2437.25,-1231 2437.76,-1228.54 2438.35,-1226.05 2439,-1223.55"/> | ||
| 209 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2439.5,-1223.85 2439.36,-1222.16 2438.41,-1223.57 2439.5,-1223.85"/> | ||
| 210 | <text text-anchor="middle" x="2462.62" y="-1291.4" font-family="Arial" font-size="18.00" fill="#000000">0.59%</text> | ||
| 211 | <text text-anchor="middle" x="2462.62" y="-1270.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 212 | </g> | ||
| 213 | <!-- Thread.getCurrentId->Thread.LinuxThreadImpl.getCurrentId --> | ||
| 214 | <g id="edge8" class="edge"> | ||
| 215 | <title>Thread.getCurrentId->Thread.LinuxThreadImpl.getCurrentId</title> | ||
| 216 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2460.04,-1108.68C2459.72,-1070.05 2459.3,-1018.79 2458.97,-979.84"/> | ||
| 217 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2459.54,-980.06 2458.96,-978.46 2458.42,-980.07 2459.54,-980.06"/> | ||
| 218 | <text text-anchor="middle" x="2485.62" y="-1047.4" font-family="Arial" font-size="18.00" fill="#000000">0.73%</text> | ||
| 219 | <text text-anchor="middle" x="2485.62" y="-1026.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 220 | </g> | ||
| 221 | <!-- Thread.Mutex.unlock --> | ||
| 222 | <g id="node9" class="node"> | ||
| 223 | <title>Thread.Mutex.unlock</title> | ||
| 224 | <polygon fill="none" stroke="#000000" points="2698.75,-1466 2516.25,-1466 2516.25,-1353 2698.75,-1353 2698.75,-1466"/> | ||
| 225 | <text text-anchor="middle" x="2607.5" y="-1444.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 226 | <text text-anchor="middle" x="2607.5" y="-1423.9" font-family="Arial" font-size="18.00" fill="#000000">Thread.Mutex.unlock</text> | ||
| 227 | <text text-anchor="middle" x="2607.5" y="-1402.9" font-family="Arial" font-size="18.00" fill="#000000">1.95%</text> | ||
| 228 | <text text-anchor="middle" x="2607.5" y="-1381.9" font-family="Arial" font-size="18.00" fill="#000000">(0.62%)</text> | ||
| 229 | <text text-anchor="middle" x="2607.5" y="-1360.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 230 | </g> | ||
| 231 | <!-- Thread.Mutex.unlock->Thread.Mutex.FutexImpl.unlock --> | ||
| 232 | <g id="edge5" class="edge"> | ||
| 233 | <title>Thread.Mutex.unlock->Thread.Mutex.FutexImpl.unlock</title> | ||
| 234 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2623.1,-1352.82C2642.16,-1284.81 2674.23,-1170.37 2693.48,-1101.68"/> | ||
| 235 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2693.92,-1102.16 2693.82,-1100.47 2692.84,-1101.86 2693.92,-1102.16"/> | ||
| 236 | <text text-anchor="middle" x="2681.62" y="-1291.4" font-family="Arial" font-size="18.00" fill="#000000">0.78%</text> | ||
| 237 | <text text-anchor="middle" x="2681.62" y="-1270.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 238 | </g> | ||
| 239 | <!-- Thread.Mutex.unlock->debug.assert --> | ||
| 240 | <g id="edge7" class="edge"> | ||
| 241 | <title>Thread.Mutex.unlock->debug.assert</title> | ||
| 242 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2594.15,-1352.87C2571.23,-1251.38 2530.95,-1041.58 2575.5,-987 2588.12,-971.54 2605.17,-991.9 2619.5,-978 2656.55,-942.07 2633.1,-914.91 2646.25,-865 2666.65,-787.57 2647.97,-755.68 2696.5,-692 2722.75,-657.57 2738.35,-654.47 2779.5,-641 2826.12,-625.74 2844.14,-650.67 2889.5,-632 2891.19,-631.31 2892.86,-630.55 2894.53,-629.75"/> | ||
| 243 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2894.49,-630.39 2895.67,-629.18 2893.99,-629.38 2894.49,-630.39"/> | ||
| 244 | <text text-anchor="middle" x="2671.62" y="-925.4" font-family="Arial" font-size="18.00" fill="#000000">0.24%</text> | ||
| 245 | <text text-anchor="middle" x="2671.62" y="-904.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 246 | </g> | ||
| 247 | <!-- Thread.Mutex.unlock->Thread.getCurrentId --> | ||
| 248 | <g id="edge6" class="edge"> | ||
| 249 | <title>Thread.Mutex.unlock->Thread.getCurrentId</title> | ||
| 250 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2516,-1352.78C2513.58,-1349.96 2511.32,-1347.03 2509.25,-1344 2480.34,-1301.6 2500.1,-1280.2 2485.5,-1231 2484.78,-1228.57 2484.01,-1226.11 2483.2,-1223.62"/> | ||
| 251 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2483.78,-1223.59 2482.74,-1222.24 2482.71,-1223.94 2483.78,-1223.59"/> | ||
| 252 | <text text-anchor="middle" x="2534.62" y="-1291.4" font-family="Arial" font-size="18.00" fill="#000000">0.30%</text> | ||
| 253 | <text text-anchor="middle" x="2534.62" y="-1270.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 254 | </g> | ||
| 255 | <!-- debug.attachSegfaultHandler --> | ||
| 256 | <g id="node10" class="node"> | ||
| 257 | <title>debug.attachSegfaultHandler</title> | ||
| 258 | <polygon fill="none" stroke="#000000" points="3673.25,-1710 3427.75,-1710 3427.75,-1597 3673.25,-1597 3673.25,-1710"/> | ||
| 259 | <text text-anchor="middle" x="3550.5" y="-1688.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 260 | <text text-anchor="middle" x="3550.5" y="-1667.9" font-family="Arial" font-size="18.00" fill="#000000">debug.attachSegfaultHandler</text> | ||
| 261 | <text text-anchor="middle" x="3550.5" y="-1646.9" font-family="Arial" font-size="18.00" fill="#000000">25.46%</text> | ||
| 262 | <text text-anchor="middle" x="3550.5" y="-1625.9" font-family="Arial" font-size="18.00" fill="#000000">(0.32%)</text> | ||
| 263 | <text text-anchor="middle" x="3550.5" y="-1604.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 264 | </g> | ||
| 265 | <!-- debug.updateSegfaultHandler --> | ||
| 266 | <g id="node11" class="node"> | ||
| 267 | <title>debug.updateSegfaultHandler</title> | ||
| 268 | <polygon fill="none" stroke="#000000" points="3718.88,-1344 3468.12,-1344 3468.12,-1231 3718.88,-1231 3718.88,-1344"/> | ||
| 269 | <text text-anchor="middle" x="3593.5" y="-1322.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 270 | <text text-anchor="middle" x="3593.5" y="-1301.9" font-family="Arial" font-size="18.00" fill="#000000">debug.updateSegfaultHandler</text> | ||
| 271 | <text text-anchor="middle" x="3593.5" y="-1280.9" font-family="Arial" font-size="18.00" fill="#000000">23.74%</text> | ||
| 272 | <text text-anchor="middle" x="3593.5" y="-1259.9" font-family="Arial" font-size="18.00" fill="#000000">(0.72%)</text> | ||
| 273 | <text text-anchor="middle" x="3593.5" y="-1238.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 274 | </g> | ||
| 275 | <!-- debug.attachSegfaultHandler->debug.updateSegfaultHandler --> | ||
| 276 | <g id="edge9" class="edge"> | ||
| 277 | <title>debug.attachSegfaultHandler->debug.updateSegfaultHandler</title> | ||
| 278 | <path fill="none" stroke="#000000" stroke-width="1.9" d="M3596.93,-1596.74C3598.29,-1593.87 3599.49,-1590.95 3600.5,-1588 3627.04,-1510.45 3618.25,-1414.89 3607.57,-1352.87"/> | ||
| 279 | <polygon fill="#000000" stroke="#000000" stroke-width="1.9" points="3609.64,-1352.72 3606.06,-1346.35 3604.89,-1353.57 3609.64,-1352.72"/> | ||
| 280 | <text text-anchor="middle" x="3648.5" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">23.74%</text> | ||
| 281 | <text text-anchor="middle" x="3648.5" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 282 | </g> | ||
| 283 | <!-- memcpy --> | ||
| 284 | <g id="node12" class="node"> | ||
| 285 | <title>memcpy</title> | ||
| 286 | <polygon fill="none" stroke="#000000" points="3564.25,-1466 3480.75,-1466 3480.75,-1353 3564.25,-1353 3564.25,-1466"/> | ||
| 287 | <text text-anchor="middle" x="3522.5" y="-1444.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 288 | <text text-anchor="middle" x="3522.5" y="-1423.9" font-family="Arial" font-size="18.00" fill="#000000">memcpy</text> | ||
| 289 | <text text-anchor="middle" x="3522.5" y="-1402.9" font-family="Arial" font-size="18.00" fill="#000000">2.85%</text> | ||
| 290 | <text text-anchor="middle" x="3522.5" y="-1381.9" font-family="Arial" font-size="18.00" fill="#000000">(2.85%)</text> | ||
| 291 | <text text-anchor="middle" x="3522.5" y="-1360.9" font-family="Arial" font-size="18.00" fill="#000000">3×</text> | ||
| 292 | </g> | ||
| 293 | <!-- debug.attachSegfaultHandler->memcpy --> | ||
| 294 | <g id="edge10" class="edge"> | ||
| 295 | <title>debug.attachSegfaultHandler->memcpy</title> | ||
| 296 | <path fill="none" stroke="#000000" stroke-width="0.11" d="M3548.64,-1596.69C3546.92,-1561.6 3543.65,-1515.48 3537.5,-1475 3537.15,-1472.69 3536.76,-1470.34 3536.34,-1467.98"/> | ||
| 297 | <polygon fill="#000000" stroke="#000000" stroke-width="0.11" points="3536.93,-1467.9 3536.04,-1466.33 3535.76,-1468.11 3536.93,-1467.9"/> | ||
| 298 | <text text-anchor="middle" x="3573.62" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">1.40%</text> | ||
| 299 | <text text-anchor="middle" x="3573.62" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 300 | </g> | ||
| 301 | <!-- os.sigaction --> | ||
| 302 | <g id="node16" class="node"> | ||
| 303 | <title>os.sigaction</title> | ||
| 304 | <polygon fill="none" stroke="#000000" points="3660.38,-1100 3550.62,-1100 3550.62,-987 3660.38,-987 3660.38,-1100"/> | ||
| 305 | <text text-anchor="middle" x="3605.5" y="-1078.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 306 | <text text-anchor="middle" x="3605.5" y="-1057.9" font-family="Arial" font-size="18.00" fill="#000000">os.sigaction</text> | ||
| 307 | <text text-anchor="middle" x="3605.5" y="-1036.9" font-family="Arial" font-size="18.00" fill="#000000">28.79%</text> | ||
| 308 | <text text-anchor="middle" x="3605.5" y="-1015.9" font-family="Arial" font-size="18.00" fill="#000000">(2.15%)</text> | ||
| 309 | <text text-anchor="middle" x="3605.5" y="-994.9" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 310 | </g> | ||
| 311 | <!-- debug.updateSegfaultHandler->os.sigaction --> | ||
| 312 | <g id="edge15" class="edge"> | ||
| 313 | <title>debug.updateSegfaultHandler->os.sigaction</title> | ||
| 314 | <path fill="none" stroke="#000000" stroke-width="1.84" d="M3596.27,-1230.68C3598.07,-1194.34 3600.43,-1146.83 3602.31,-1108.89"/> | ||
| 315 | <polygon fill="#000000" stroke="#000000" stroke-width="1.84" points="3604.77,-1109.37 3602.73,-1102.46 3600.01,-1109.14 3604.77,-1109.37"/> | ||
| 316 | <text text-anchor="middle" x="3632.5" y="-1169.4" font-family="Arial" font-size="18.00" fill="#000000">23.02%</text> | ||
| 317 | <text text-anchor="middle" x="3632.5" y="-1148.4" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 318 | </g> | ||
| 319 | <!-- debug.maybeEnableSegfaultHandler->debug.attachSegfaultHandler --> | ||
| 320 | <g id="edge11" class="edge"> | ||
| 321 | <title>debug.maybeEnableSegfaultHandler->debug.attachSegfaultHandler</title> | ||
| 322 | <path fill="none" stroke="#000000" stroke-width="2.04" d="M3539.73,-1840.68C3541.81,-1804.8 3544.51,-1758.02 3546.69,-1720.33"/> | ||
| 323 | <polygon fill="#000000" stroke="#000000" stroke-width="2.04" points="3549.33,-1720.69 3547.26,-1713.46 3544.37,-1720.41 3549.33,-1720.69"/> | ||
| 324 | <text text-anchor="middle" x="3577.5" y="-1779.4" font-family="Arial" font-size="18.00" fill="#000000">25.46%</text> | ||
| 325 | <text text-anchor="middle" x="3577.5" y="-1758.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 326 | </g> | ||
| 327 | <!-- debug.print__anon_2981 --> | ||
| 328 | <g id="node14" class="node"> | ||
| 329 | <title>debug.print__anon_2981</title> | ||
| 330 | <polygon fill="none" stroke="#000000" points="2652.38,-1710 2440.62,-1710 2440.62,-1597 2652.38,-1597 2652.38,-1710"/> | ||
| 331 | <text text-anchor="middle" x="2546.5" y="-1688.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 332 | <text text-anchor="middle" x="2546.5" y="-1667.9" font-family="Arial" font-size="18.00" fill="#000000">debug.print__anon_2981</text> | ||
| 333 | <text text-anchor="middle" x="2546.5" y="-1646.9" font-family="Arial" font-size="18.00" fill="#000000">9.69%</text> | ||
| 334 | <text text-anchor="middle" x="2546.5" y="-1625.9" font-family="Arial" font-size="18.00" fill="#000000">(0.49%)</text> | ||
| 335 | <text text-anchor="middle" x="2546.5" y="-1604.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 336 | </g> | ||
| 337 | <!-- debug.print__anon_2981->Thread.Mutex.lock --> | ||
| 338 | <g id="edge12" class="edge"> | ||
| 339 | <title>debug.print__anon_2981->Thread.Mutex.lock</title> | ||
| 340 | <path fill="none" stroke="#000000" stroke-width="0.18" d="M2515.76,-1596.65C2514.22,-1593.73 2512.71,-1590.84 2511.25,-1588 2490.83,-1548.31 2468.96,-1502.98 2452.42,-1468.07"/> | ||
| 341 | <polygon fill="#000000" stroke="#000000" stroke-width="0.18" points="2453.27,-1468.08 2451.63,-1466.42 2451.88,-1468.74 2453.27,-1468.08"/> | ||
| 342 | <text text-anchor="middle" x="2536.62" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">2.31%</text> | ||
| 343 | <text text-anchor="middle" x="2536.62" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 344 | </g> | ||
| 345 | <!-- debug.print__anon_2981->Thread.Mutex.unlock --> | ||
| 346 | <g id="edge13" class="edge"> | ||
| 347 | <title>debug.print__anon_2981->Thread.Mutex.unlock</title> | ||
| 348 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M2560.57,-1596.68C2570.27,-1558.2 2583.13,-1507.2 2592.93,-1468.3"/> | ||
| 349 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="2593.58,-1468.57 2593.39,-1466.46 2592.23,-1468.23 2593.58,-1468.57"/> | ||
| 350 | <text text-anchor="middle" x="2616.62" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">1.95%</text> | ||
| 351 | <text text-anchor="middle" x="2616.62" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 352 | </g> | ||
| 353 | <!-- io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870 --> | ||
| 354 | <g id="node15" class="node"> | ||
| 355 | <title>io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870</title> | ||
| 356 | <polygon fill="none" stroke="#000000" points="2335,-1466 0,-1466 0,-1353 2335,-1353 2335,-1466"/> | ||
| 357 | <text text-anchor="middle" x="1167.5" y="-1444.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 358 | <text text-anchor="middle" x="1167.5" y="-1423.9" font-family="Arial" font-size="18.00" fill="#000000">io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870</text> | ||
| 359 | <text text-anchor="middle" x="1167.5" y="-1402.9" font-family="Arial" font-size="18.00" fill="#000000">4.51%</text> | ||
| 360 | <text text-anchor="middle" x="1167.5" y="-1381.9" font-family="Arial" font-size="18.00" fill="#000000">(0.19%)</text> | ||
| 361 | <text text-anchor="middle" x="1167.5" y="-1360.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 362 | </g> | ||
| 363 | <!-- debug.print__anon_2981->io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870 --> | ||
| 364 | <g id="edge14" class="edge"> | ||
| 365 | <title>debug.print__anon_2981->io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870</title> | ||
| 366 | <path fill="none" stroke="#000000" stroke-width="0.36" d="M2440.3,-1633.86C2239.21,-1598.57 1795.62,-1520.73 1489.14,-1466.94"/> | ||
| 367 | <polygon fill="#000000" stroke="#000000" stroke-width="0.36" points="1489.58,-1465.96 1486.44,-1466.47 1489.22,-1468.02 1489.58,-1465.96"/> | ||
| 368 | <text text-anchor="middle" x="2202.62" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">4.51%</text> | ||
| 369 | <text text-anchor="middle" x="2202.62" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 370 | </g> | ||
| 371 | <!-- fmt.format__anon_4094 --> | ||
| 372 | <g id="node17" class="node"> | ||
| 373 | <title>fmt.format__anon_4094</title> | ||
| 374 | <polygon fill="none" stroke="#000000" points="1270,-1222 1065,-1222 1065,-1109 1270,-1109 1270,-1222"/> | ||
| 375 | <text text-anchor="middle" x="1167.5" y="-1200.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 376 | <text text-anchor="middle" x="1167.5" y="-1179.9" font-family="Arial" font-size="18.00" fill="#000000">fmt.format__anon_4094</text> | ||
| 377 | <text text-anchor="middle" x="1167.5" y="-1158.9" font-family="Arial" font-size="18.00" fill="#000000">4.32%</text> | ||
| 378 | <text text-anchor="middle" x="1167.5" y="-1137.9" font-family="Arial" font-size="18.00" fill="#000000">(0.27%)</text> | ||
| 379 | <text text-anchor="middle" x="1167.5" y="-1116.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 380 | </g> | ||
| 381 | <!-- io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870->fmt.format__anon_4094 --> | ||
| 382 | <g id="edge19" class="edge"> | ||
| 383 | <title>io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).print__anon_3870->fmt.format__anon_4094</title> | ||
| 384 | <path fill="none" stroke="#000000" stroke-width="0.35" d="M1167.5,-1352.68C1167.5,-1314.51 1167.5,-1264.01 1167.5,-1225.23"/> | ||
| 385 | <polygon fill="#000000" stroke="#000000" stroke-width="0.35" points="1168.52,-1225.36 1167.5,-1222.46 1166.49,-1225.36 1168.52,-1225.36"/> | ||
| 386 | <text text-anchor="middle" x="1192.62" y="-1291.4" font-family="Arial" font-size="18.00" fill="#000000">4.32%</text> | ||
| 387 | <text text-anchor="middle" x="1192.62" y="-1270.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 388 | </g> | ||
| 389 | <!-- os.linux.getErrno --> | ||
| 390 | <g id="node29" class="node"> | ||
| 391 | <title>os.linux.getErrno</title> | ||
| 392 | <polygon fill="none" stroke="#000000" points="2969.25,-286 2819.75,-286 2819.75,-173 2969.25,-173 2969.25,-286"/> | ||
| 393 | <text text-anchor="middle" x="2894.5" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 394 | <text text-anchor="middle" x="2894.5" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.getErrno</text> | ||
| 395 | <text text-anchor="middle" x="2894.5" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">5.18%</text> | ||
| 396 | <text text-anchor="middle" x="2894.5" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(5.18%)</text> | ||
| 397 | <text text-anchor="middle" x="2894.5" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">13×</text> | ||
| 398 | </g> | ||
| 399 | <!-- os.sigaction->os.linux.getErrno --> | ||
| 400 | <g id="edge49" class="edge"> | ||
| 401 | <title>os.sigaction->os.linux.getErrno</title> | ||
| 402 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M3615.56,-986.56C3632.22,-875.66 3653.09,-625.1 3536.5,-468 3401.14,-285.61 3110.05,-243.18 2971.21,-233.39"/> | ||
| 403 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="2971.63,-232.71 2969.59,-233.27 2971.53,-234.11 2971.63,-232.71"/> | ||
| 404 | <text text-anchor="middle" x="3643.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">1.99%</text> | ||
| 405 | <text text-anchor="middle" x="3643.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 406 | </g> | ||
| 407 | <!-- os.linux.sigaction --> | ||
| 408 | <g id="node34" class="node"> | ||
| 409 | <title>os.linux.sigaction</title> | ||
| 410 | <polygon fill="none" stroke="#000000" points="3603,-805 3452,-805 3452,-692 3603,-692 3603,-805"/> | ||
| 411 | <text text-anchor="middle" x="3527.5" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 412 | <text text-anchor="middle" x="3527.5" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.sigaction</text> | ||
| 413 | <text text-anchor="middle" x="3527.5" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">24.65%</text> | ||
| 414 | <text text-anchor="middle" x="3527.5" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(12.53%)</text> | ||
| 415 | <text text-anchor="middle" x="3527.5" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 416 | </g> | ||
| 417 | <!-- os.sigaction->os.linux.sigaction --> | ||
| 418 | <g id="edge50" class="edge"> | ||
| 419 | <title>os.sigaction->os.linux.sigaction</title> | ||
| 420 | <path fill="none" stroke="#000000" stroke-width="1.97" d="M3554.83,-986.81C3553.23,-983.92 3551.77,-980.98 3550.5,-978 3528.31,-925.98 3523.65,-861.44 3523.9,-814.24"/> | ||
| 421 | <polygon fill="#000000" stroke="#000000" stroke-width="1.97" points="3526.38,-814.37 3524.01,-807.34 3521.48,-814.31 3526.38,-814.37"/> | ||
| 422 | <text text-anchor="middle" x="3580.5" y="-925.4" font-family="Arial" font-size="18.00" fill="#000000">24.65%</text> | ||
| 423 | <text text-anchor="middle" x="3580.5" y="-904.4" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 424 | </g> | ||
| 425 | <!-- io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll --> | ||
| 426 | <g id="node18" class="node"> | ||
| 427 | <title>io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll</title> | ||
| 428 | <polygon fill="none" stroke="#000000" points="2292.62,-978 42.38,-978 42.38,-865 2292.62,-865 2292.62,-978"/> | ||
| 429 | <text text-anchor="middle" x="1167.5" y="-956.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 430 | <text text-anchor="middle" x="1167.5" y="-935.9" font-family="Arial" font-size="18.00" fill="#000000">io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll</text> | ||
| 431 | <text text-anchor="middle" x="1167.5" y="-914.9" font-family="Arial" font-size="18.00" fill="#000000">4.05%</text> | ||
| 432 | <text text-anchor="middle" x="1167.5" y="-893.9" font-family="Arial" font-size="18.00" fill="#000000">(1.28%)</text> | ||
| 433 | <text text-anchor="middle" x="1167.5" y="-872.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 434 | </g> | ||
| 435 | <!-- fmt.format__anon_4094->io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll --> | ||
| 436 | <g id="edge16" class="edge"> | ||
| 437 | <title>fmt.format__anon_4094->io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll</title> | ||
| 438 | <path fill="none" stroke="#000000" stroke-width="0.32" d="M1167.5,-1108.68C1167.5,-1070.51 1167.5,-1020.01 1167.5,-981.23"/> | ||
| 439 | <polygon fill="#000000" stroke="#000000" stroke-width="0.32" points="1168.48,-981.26 1167.5,-978.46 1166.52,-981.26 1168.48,-981.26"/> | ||
| 440 | <text text-anchor="middle" x="1192.62" y="-1047.4" font-family="Arial" font-size="18.00" fill="#000000">4.05%</text> | ||
| 441 | <text text-anchor="middle" x="1192.62" y="-1026.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 442 | </g> | ||
| 443 | <!-- io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write --> | ||
| 444 | <g id="node22" class="node"> | ||
| 445 | <title>io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write</title> | ||
| 446 | <polygon fill="none" stroke="#000000" points="2535.88,-805 305.12,-805 305.12,-692 2535.88,-692 2535.88,-805"/> | ||
| 447 | <text text-anchor="middle" x="1420.5" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 448 | <text text-anchor="middle" x="1420.5" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write</text> | ||
| 449 | <text text-anchor="middle" x="1420.5" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">2.77%</text> | ||
| 450 | <text text-anchor="middle" x="1420.5" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(0.43%)</text> | ||
| 451 | <text text-anchor="middle" x="1420.5" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 452 | </g> | ||
| 453 | <!-- io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll->io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write --> | ||
| 454 | <g id="edge21" class="edge"> | ||
| 455 | <title>io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).writeAll->io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write</title> | ||
| 456 | <path fill="none" stroke="#000000" stroke-width="0.22" d="M1250.34,-864.51C1277.78,-845.96 1308.35,-825.3 1335.92,-806.66"/> | ||
| 457 | <polygon fill="#000000" stroke="#000000" stroke-width="0.22" points="1336.39,-807.37 1337.9,-805.33 1335.45,-805.97 1336.39,-807.37"/> | ||
| 458 | <text text-anchor="middle" x="1349.62" y="-838.9" font-family="Arial" font-size="18.00" fill="#000000">2.77%</text> | ||
| 459 | <text text-anchor="middle" x="1349.62" y="-817.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 460 | </g> | ||
| 461 | <!-- fs.file.File.write --> | ||
| 462 | <g id="node19" class="node"> | ||
| 463 | <title>fs.file.File.write</title> | ||
| 464 | <polygon fill="none" stroke="#000000" points="2043.75,-632 1909.25,-632 1909.25,-519 2043.75,-519 2043.75,-632"/> | ||
| 465 | <text text-anchor="middle" x="1976.5" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 466 | <text text-anchor="middle" x="1976.5" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">fs.file.File.write</text> | ||
| 467 | <text text-anchor="middle" x="1976.5" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">2.34%</text> | ||
| 468 | <text text-anchor="middle" x="1976.5" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(0.45%)</text> | ||
| 469 | <text text-anchor="middle" x="1976.5" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 470 | </g> | ||
| 471 | <!-- os.write --> | ||
| 472 | <g id="node20" class="node"> | ||
| 473 | <title>os.write</title> | ||
| 474 | <polygon fill="none" stroke="#000000" points="2491.62,-459 2413.38,-459 2413.38,-346 2491.62,-346 2491.62,-459"/> | ||
| 475 | <text text-anchor="middle" x="2452.5" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 476 | <text text-anchor="middle" x="2452.5" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">os.write</text> | ||
| 477 | <text text-anchor="middle" x="2452.5" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">1.90%</text> | ||
| 478 | <text text-anchor="middle" x="2452.5" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(0.96%)</text> | ||
| 479 | <text text-anchor="middle" x="2452.5" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 480 | </g> | ||
| 481 | <!-- fs.file.File.write->os.write --> | ||
| 482 | <g id="edge17" class="edge"> | ||
| 483 | <title>fs.file.File.write->os.write</title> | ||
| 484 | <path fill="none" stroke="#000000" stroke-width="0.15" d="M2044.19,-550.18C2144.47,-514.16 2329.46,-447.7 2411.49,-418.23"/> | ||
| 485 | <polygon fill="#000000" stroke="#000000" stroke-width="0.15" points="2411.37,-418.98 2412.93,-417.72 2410.92,-417.73 2411.37,-418.98"/> | ||
| 486 | <text text-anchor="middle" x="2296.62" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">1.90%</text> | ||
| 487 | <text text-anchor="middle" x="2296.62" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 488 | </g> | ||
| 489 | <!-- os.write->os.linux.getErrno --> | ||
| 490 | <g id="edge51" class="edge"> | ||
| 491 | <title>os.write->os.linux.getErrno</title> | ||
| 492 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2492.07,-351.97C2494.18,-349.9 2496.33,-347.89 2498.5,-346 2530.74,-317.82 2539.34,-307.65 2580.25,-295 2625.99,-280.86 2749.44,-299.06 2795.5,-286 2803.09,-283.85 2810.72,-281.01 2818.21,-277.76"/> | ||
| 493 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2818.07,-278.43 2819.31,-277.27 2817.62,-277.4 2818.07,-278.43"/> | ||
| 494 | <text text-anchor="middle" x="2605.62" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">0.40%</text> | ||
| 495 | <text text-anchor="middle" x="2605.62" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 496 | </g> | ||
| 497 | <!-- os.linux.write --> | ||
| 498 | <g id="node39" class="node"> | ||
| 499 | <title>os.linux.write</title> | ||
| 500 | <polygon fill="none" stroke="#000000" points="2511.88,-286 2393.12,-286 2393.12,-173 2511.88,-173 2511.88,-286"/> | ||
| 501 | <text text-anchor="middle" x="2452.5" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 502 | <text text-anchor="middle" x="2452.5" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.write</text> | ||
| 503 | <text text-anchor="middle" x="2452.5" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">0.54%</text> | ||
| 504 | <text text-anchor="middle" x="2452.5" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(0.22%)</text> | ||
| 505 | <text text-anchor="middle" x="2452.5" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 506 | </g> | ||
| 507 | <!-- os.write->os.linux.write --> | ||
| 508 | <g id="edge52" class="edge"> | ||
| 509 | <title>os.write->os.linux.write</title> | ||
| 510 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2452.5,-345.51C2452.5,-326.96 2452.5,-306.3 2452.5,-287.66"/> | ||
| 511 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2453.06,-287.93 2452.5,-286.33 2451.94,-287.93 2453.06,-287.93"/> | ||
| 512 | <text text-anchor="middle" x="2477.62" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">0.54%</text> | ||
| 513 | <text text-anchor="middle" x="2477.62" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 514 | </g> | ||
| 515 | <!-- hi.main->debug.print__anon_2981 --> | ||
| 516 | <g id="edge18" class="edge"> | ||
| 517 | <title>hi.main->debug.print__anon_2981</title> | ||
| 518 | <path fill="none" stroke="#000000" stroke-width="0.78" d="M2616.51,-1840.68C2602.39,-1803.12 2583.77,-1753.62 2569.29,-1715.1"/> | ||
| 519 | <polygon fill="#000000" stroke="#000000" stroke-width="0.78" points="2570.53,-1715.04 2567.54,-1711.46 2567.65,-1716.12 2570.53,-1715.04"/> | ||
| 520 | <text text-anchor="middle" x="2638.62" y="-1779.4" font-family="Arial" font-size="18.00" fill="#000000">9.69%</text> | ||
| 521 | <text text-anchor="middle" x="2638.62" y="-1758.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 522 | </g> | ||
| 523 | <!-- io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write->fs.file.File.write --> | ||
| 524 | <g id="edge20" class="edge"> | ||
| 525 | <title>io.writer.Writer(fs.file.File,error{AccessDenied,Unexpected,DiskQuota,FileTooBig,InputOutput,NoSpaceLeft,DeviceBusy,InvalidArgument,BrokenPipe,SystemResources,OperationAborted,NotOpenForWriting,LockViolation,WouldBlock,ConnectionResetByPeer},(function 'write')).write->fs.file.File.write</title> | ||
| 526 | <path fill="none" stroke="#000000" stroke-width="0.19" d="M1602.56,-691.51C1706.72,-659.47 1831.38,-621.13 1907.21,-597.81"/> | ||
| 527 | <polygon fill="#000000" stroke="#000000" stroke-width="0.19" points="1907.11,-598.65 1908.99,-597.26 1906.66,-597.17 1907.11,-598.65"/> | ||
| 528 | <text text-anchor="middle" x="1790.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">2.34%</text> | ||
| 529 | <text text-anchor="middle" x="1790.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 530 | </g> | ||
| 531 | <!-- math.isPowerOfTwo__anon_7182 --> | ||
| 532 | <g id="node23" class="node"> | ||
| 533 | <title>math.isPowerOfTwo__anon_7182</title> | ||
| 534 | <polygon fill="none" stroke="#000000" points="3278,-805 2995,-805 2995,-692 3278,-692 3278,-805"/> | ||
| 535 | <text text-anchor="middle" x="3136.5" y="-783.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 536 | <text text-anchor="middle" x="3136.5" y="-762.9" font-family="Arial" font-size="18.00" fill="#000000">math.isPowerOfTwo__anon_7182</text> | ||
| 537 | <text text-anchor="middle" x="3136.5" y="-741.9" font-family="Arial" font-size="18.00" fill="#000000">2.42%</text> | ||
| 538 | <text text-anchor="middle" x="3136.5" y="-720.9" font-family="Arial" font-size="18.00" fill="#000000">(1.47%)</text> | ||
| 539 | <text text-anchor="middle" x="3136.5" y="-699.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 540 | </g> | ||
| 541 | <!-- math.isPowerOfTwo__anon_7182->debug.assert --> | ||
| 542 | <g id="edge22" class="edge"> | ||
| 543 | <title>math.isPowerOfTwo__anon_7182->debug.assert</title> | ||
| 544 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M3077.23,-691.51C3057.44,-672.81 3035.38,-651.97 3015.53,-633.22"/> | ||
| 545 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="3016.14,-633.02 3014.59,-632.33 3015.37,-633.83 3016.14,-633.02"/> | ||
| 546 | <text text-anchor="middle" x="3093.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">0.96%</text> | ||
| 547 | <text text-anchor="middle" x="3093.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 548 | </g> | ||
| 549 | <!-- mem.alignBackward__anon_4065 --> | ||
| 550 | <g id="node24" class="node"> | ||
| 551 | <title>mem.alignBackward__anon_4065</title> | ||
| 552 | <polygon fill="none" stroke="#000000" points="3358,-1222 3075,-1222 3075,-1109 3358,-1109 3358,-1222"/> | ||
| 553 | <text text-anchor="middle" x="3216.5" y="-1200.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 554 | <text text-anchor="middle" x="3216.5" y="-1179.9" font-family="Arial" font-size="18.00" fill="#000000">mem.alignBackward__anon_4065</text> | ||
| 555 | <text text-anchor="middle" x="3216.5" y="-1158.9" font-family="Arial" font-size="18.00" fill="#000000">2.97%</text> | ||
| 556 | <text text-anchor="middle" x="3216.5" y="-1137.9" font-family="Arial" font-size="18.00" fill="#000000">(0.80%)</text> | ||
| 557 | <text text-anchor="middle" x="3216.5" y="-1116.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 558 | </g> | ||
| 559 | <!-- mem.alignBackward__anon_4065->debug.assert --> | ||
| 560 | <g id="edge23" class="edge"> | ||
| 561 | <title>mem.alignBackward__anon_4065->debug.assert</title> | ||
| 562 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M3267.61,-1108.8C3295.99,-1074 3328.5,-1026.67 3343.5,-978 3358.29,-930 3373.14,-905.55 3343.5,-865 3335.72,-854.36 3324.04,-865.82 3315.25,-856 3265.7,-800.6 3331.18,-748.16 3282.5,-692 3214.77,-613.87 3090.75,-588.59 3016.45,-580.41"/> | ||
| 563 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="3016.79,-579.88 3015.14,-580.27 3016.67,-581 3016.79,-579.88"/> | ||
| 564 | <text text-anchor="middle" x="3340.62" y="-838.9" font-family="Arial" font-size="18.00" fill="#000000">0.48%</text> | ||
| 565 | <text text-anchor="middle" x="3340.62" y="-817.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 566 | </g> | ||
| 567 | <!-- mem.isValidAlignGeneric__anon_4064 --> | ||
| 568 | <g id="node25" class="node"> | ||
| 569 | <title>mem.isValidAlignGeneric__anon_4064</title> | ||
| 570 | <polygon fill="none" stroke="#000000" points="3339.38,-978 3019.62,-978 3019.62,-865 3339.38,-865 3339.38,-978"/> | ||
| 571 | <text text-anchor="middle" x="3179.5" y="-956.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 572 | <text text-anchor="middle" x="3179.5" y="-935.9" font-family="Arial" font-size="18.00" fill="#000000">mem.isValidAlignGeneric__anon_4064</text> | ||
| 573 | <text text-anchor="middle" x="3179.5" y="-914.9" font-family="Arial" font-size="18.00" fill="#000000">3.38%</text> | ||
| 574 | <text text-anchor="middle" x="3179.5" y="-893.9" font-family="Arial" font-size="18.00" fill="#000000">(0.96%)</text> | ||
| 575 | <text text-anchor="middle" x="3179.5" y="-872.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 576 | </g> | ||
| 577 | <!-- mem.alignBackward__anon_4065->mem.isValidAlignGeneric__anon_4064 --> | ||
| 578 | <g id="edge24" class="edge"> | ||
| 579 | <title>mem.alignBackward__anon_4065->mem.isValidAlignGeneric__anon_4064</title> | ||
| 580 | <path fill="none" stroke="#000000" stroke-width="0.14" d="M3207.96,-1108.68C3202.06,-1070.05 3194.22,-1018.79 3188.27,-979.84"/> | ||
| 581 | <polygon fill="#000000" stroke="#000000" stroke-width="0.14" points="3188.95,-980.15 3188.06,-978.46 3187.71,-980.34 3188.95,-980.15"/> | ||
| 582 | <text text-anchor="middle" x="3232.62" y="-1047.4" font-family="Arial" font-size="18.00" fill="#000000">1.69%</text> | ||
| 583 | <text text-anchor="middle" x="3232.62" y="-1026.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 584 | </g> | ||
| 585 | <!-- mem.isValidAlignGeneric__anon_4064->math.isPowerOfTwo__anon_7182 --> | ||
| 586 | <g id="edge28" class="edge"> | ||
| 587 | <title>mem.isValidAlignGeneric__anon_4064->math.isPowerOfTwo__anon_7182</title> | ||
| 588 | <path fill="none" stroke="#000000" stroke-width="0.19" d="M3165.42,-864.51C3160.79,-846.11 3155.64,-825.63 3150.99,-807.11"/> | ||
| 589 | <polygon fill="#000000" stroke="#000000" stroke-width="0.19" points="3151.82,-807.27 3150.54,-805.33 3150.33,-807.65 3151.82,-807.27"/> | ||
| 590 | <text text-anchor="middle" x="3188.62" y="-838.9" font-family="Arial" font-size="18.00" fill="#000000">2.42%</text> | ||
| 591 | <text text-anchor="middle" x="3188.62" y="-817.9" font-family="Arial" font-size="18.00" fill="#000000">4×</text> | ||
| 592 | </g> | ||
| 593 | <!-- mem.alignForward__anon_3355 --> | ||
| 594 | <g id="node26" class="node"> | ||
| 595 | <title>mem.alignForward__anon_3355</title> | ||
| 596 | <polygon fill="none" stroke="#000000" points="3278.62,-1466 3008.38,-1466 3008.38,-1353 3278.62,-1353 3278.62,-1466"/> | ||
| 597 | <text text-anchor="middle" x="3143.5" y="-1444.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 598 | <text text-anchor="middle" x="3143.5" y="-1423.9" font-family="Arial" font-size="18.00" fill="#000000">mem.alignForward__anon_3355</text> | ||
| 599 | <text text-anchor="middle" x="3143.5" y="-1402.9" font-family="Arial" font-size="18.00" fill="#000000">6.12%</text> | ||
| 600 | <text text-anchor="middle" x="3143.5" y="-1381.9" font-family="Arial" font-size="18.00" fill="#000000">(0.99%)</text> | ||
| 601 | <text text-anchor="middle" x="3143.5" y="-1360.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 602 | </g> | ||
| 603 | <!-- mem.alignForward__anon_3355->debug.assert --> | ||
| 604 | <g id="edge25" class="edge"> | ||
| 605 | <title>mem.alignForward__anon_3355->debug.assert</title> | ||
| 606 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M3039.29,-1352.73C3036.85,-1349.94 3034.58,-1347.03 3032.5,-1344 3003.74,-1302.06 3038.79,-1275.68 3014.5,-1231 3011.64,-1225.75 3007.36,-1227.25 3004.5,-1222 2949.73,-1121.44 2951.11,-771.97 2953.95,-633.57"/> | ||
| 607 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2954.5,-633.97 2953.97,-632.36 2953.38,-633.95 2954.5,-633.97"/> | ||
| 608 | <text text-anchor="middle" x="2985.62" y="-925.4" font-family="Arial" font-size="18.00" fill="#000000">0.48%</text> | ||
| 609 | <text text-anchor="middle" x="2985.62" y="-904.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 610 | </g> | ||
| 611 | <!-- mem.alignForward__anon_3355->mem.alignBackward__anon_4065 --> | ||
| 612 | <g id="edge26" class="edge"> | ||
| 613 | <title>mem.alignForward__anon_3355->mem.alignBackward__anon_4065</title> | ||
| 614 | <path fill="none" stroke="#000000" stroke-width="0.24" d="M3160.34,-1352.68C3171.95,-1314.2 3187.33,-1263.2 3199.06,-1224.3"/> | ||
| 615 | <polygon fill="#000000" stroke="#000000" stroke-width="0.24" points="3199.73,-1225 3199.62,-1222.46 3198.12,-1224.52 3199.73,-1225"/> | ||
| 616 | <text text-anchor="middle" x="3222.62" y="-1291.4" font-family="Arial" font-size="18.00" fill="#000000">2.97%</text> | ||
| 617 | <text text-anchor="middle" x="3222.62" y="-1270.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 618 | </g> | ||
| 619 | <!-- mem.alignForward__anon_3355->mem.isValidAlignGeneric__anon_4064 --> | ||
| 620 | <g id="edge27" class="edge"> | ||
| 621 | <title>mem.alignForward__anon_3355->mem.isValidAlignGeneric__anon_4064</title> | ||
| 622 | <path fill="none" stroke="#000000" stroke-width="0.14" d="M3112.14,-1352.68C3090.77,-1316.56 3060.78,-1269.29 3029.5,-1231 3025.87,-1226.56 3022.48,-1227.28 3020.25,-1222 3000.71,-1175.73 3002.87,-1156.12 3020.25,-1109 3038.74,-1058.86 3077.38,-1013.06 3111.97,-979.39"/> | ||
| 623 | <polygon fill="#000000" stroke="#000000" stroke-width="0.14" points="3112.34,-979.9 3113.2,-978.2 3111.47,-979 3112.34,-979.9"/> | ||
| 624 | <text text-anchor="middle" x="3045.62" y="-1169.4" font-family="Arial" font-size="18.00" fill="#000000">1.69%</text> | ||
| 625 | <text text-anchor="middle" x="3045.62" y="-1148.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 626 | </g> | ||
| 627 | <!-- memset --> | ||
| 628 | <g id="node27" class="node"> | ||
| 629 | <title>memset</title> | ||
| 630 | <polygon fill="none" stroke="#000000" points="3488.38,-632 3408.62,-632 3408.62,-519 3488.38,-519 3488.38,-632"/> | ||
| 631 | <text text-anchor="middle" x="3448.5" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 632 | <text text-anchor="middle" x="3448.5" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">memset</text> | ||
| 633 | <text text-anchor="middle" x="3448.5" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">9.49%</text> | ||
| 634 | <text text-anchor="middle" x="3448.5" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(9.49%)</text> | ||
| 635 | <text text-anchor="middle" x="3448.5" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">17×</text> | ||
| 636 | </g> | ||
| 637 | <!-- os.getrlimit --> | ||
| 638 | <g id="node28" class="node"> | ||
| 639 | <title>os.getrlimit</title> | ||
| 640 | <polygon fill="none" stroke="#000000" points="2625.62,-632 2523.38,-632 2523.38,-519 2625.62,-519 2625.62,-632"/> | ||
| 641 | <text text-anchor="middle" x="2574.5" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 642 | <text text-anchor="middle" x="2574.5" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">os.getrlimit</text> | ||
| 643 | <text text-anchor="middle" x="2574.5" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">1.98%</text> | ||
| 644 | <text text-anchor="middle" x="2574.5" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(0.73%)</text> | ||
| 645 | <text text-anchor="middle" x="2574.5" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 646 | </g> | ||
| 647 | <!-- os.getrlimit->os.linux.getErrno --> | ||
| 648 | <g id="edge29" class="edge"> | ||
| 649 | <title>os.getrlimit->os.linux.getErrno</title> | ||
| 650 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2626.08,-563.5C2679.59,-549.17 2761.11,-518.58 2802.5,-459 2831.33,-417.49 2797.59,-393.36 2815.25,-346 2822.84,-325.64 2834.79,-305.42 2847.13,-287.73"/> | ||
| 651 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2847.56,-288.09 2848.01,-286.46 2846.64,-287.44 2847.56,-288.09"/> | ||
| 652 | <text text-anchor="middle" x="2840.62" y="-406.4" font-family="Arial" font-size="18.00" fill="#000000">0.40%</text> | ||
| 653 | <text text-anchor="middle" x="2840.62" y="-385.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 654 | </g> | ||
| 655 | <!-- os.linux.getrlimit --> | ||
| 656 | <g id="node30" class="node"> | ||
| 657 | <title>os.linux.getrlimit</title> | ||
| 658 | <polygon fill="none" stroke="#000000" points="2646.25,-459 2502.75,-459 2502.75,-346 2646.25,-346 2646.25,-459"/> | ||
| 659 | <text text-anchor="middle" x="2574.5" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 660 | <text text-anchor="middle" x="2574.5" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.getrlimit</text> | ||
| 661 | <text text-anchor="middle" x="2574.5" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">0.85%</text> | ||
| 662 | <text text-anchor="middle" x="2574.5" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(0.22%)</text> | ||
| 663 | <text text-anchor="middle" x="2574.5" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 664 | </g> | ||
| 665 | <!-- os.getrlimit->os.linux.getrlimit --> | ||
| 666 | <g id="edge30" class="edge"> | ||
| 667 | <title>os.getrlimit->os.linux.getrlimit</title> | ||
| 668 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2574.5,-518.51C2574.5,-499.96 2574.5,-479.3 2574.5,-460.66"/> | ||
| 669 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2575.06,-460.93 2574.5,-459.33 2573.94,-460.93 2575.06,-460.93"/> | ||
| 670 | <text text-anchor="middle" x="2599.62" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">0.85%</text> | ||
| 671 | <text text-anchor="middle" x="2599.62" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 672 | </g> | ||
| 673 | <!-- os.linux.prlimit --> | ||
| 674 | <g id="node31" class="node"> | ||
| 675 | <title>os.linux.prlimit</title> | ||
| 676 | <polygon fill="none" stroke="#000000" points="2790.75,-286 2662.25,-286 2662.25,-173 2790.75,-173 2790.75,-286"/> | ||
| 677 | <text text-anchor="middle" x="2726.5" y="-264.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 678 | <text text-anchor="middle" x="2726.5" y="-243.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.prlimit</text> | ||
| 679 | <text text-anchor="middle" x="2726.5" y="-222.9" font-family="Arial" font-size="18.00" fill="#000000">1.24%</text> | ||
| 680 | <text text-anchor="middle" x="2726.5" y="-201.9" font-family="Arial" font-size="18.00" fill="#000000">(0.54%)</text> | ||
| 681 | <text text-anchor="middle" x="2726.5" y="-180.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 682 | </g> | ||
| 683 | <!-- os.linux.getrlimit->os.linux.prlimit --> | ||
| 684 | <g id="edge31" class="edge"> | ||
| 685 | <title>os.linux.getrlimit->os.linux.prlimit</title> | ||
| 686 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2624.27,-345.51C2640.89,-326.81 2659.42,-305.97 2676.09,-287.22"/> | ||
| 687 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2676.23,-287.89 2676.88,-286.33 2675.4,-287.15 2676.23,-287.89"/> | ||
| 688 | <text text-anchor="middle" x="2694.62" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">0.62%</text> | ||
| 689 | <text text-anchor="middle" x="2694.62" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 690 | </g> | ||
| 691 | <!-- os.linux.x86_64.syscall4 --> | ||
| 692 | <g id="node32" class="node"> | ||
| 693 | <title>os.linux.x86_64.syscall4</title> | ||
| 694 | <polygon fill="none" stroke="#000000" points="3266.12,-113 3058.88,-113 3058.88,0 3266.12,0 3266.12,-113"/> | ||
| 695 | <text text-anchor="middle" x="3162.5" y="-91.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 696 | <text text-anchor="middle" x="3162.5" y="-70.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.x86_64.syscall4</text> | ||
| 697 | <text text-anchor="middle" x="3162.5" y="-49.9" font-family="Arial" font-size="18.00" fill="#000000">2.46%</text> | ||
| 698 | <text text-anchor="middle" x="3162.5" y="-28.9" font-family="Arial" font-size="18.00" fill="#000000">(2.46%)</text> | ||
| 699 | <text text-anchor="middle" x="3162.5" y="-7.9" font-family="Arial" font-size="18.00" fill="#000000">7×</text> | ||
| 700 | </g> | ||
| 701 | <!-- os.linux.prlimit->os.linux.x86_64.syscall4 --> | ||
| 702 | <g id="edge32" class="edge"> | ||
| 703 | <title>os.linux.prlimit->os.linux.x86_64.syscall4</title> | ||
| 704 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2791.13,-185.77C2799.18,-181.17 2807.43,-176.8 2815.5,-173 2893.9,-136.14 2987.3,-105.76 3057.44,-85.43"/> | ||
| 705 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="3057.3,-86.05 3058.68,-85.07 3056.99,-84.98 3057.3,-86.05"/> | ||
| 706 | <text text-anchor="middle" x="2962.62" y="-146.9" font-family="Arial" font-size="18.00" fill="#000000">0.70%</text> | ||
| 707 | <text text-anchor="middle" x="2962.62" y="-125.9" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 708 | </g> | ||
| 709 | <!-- os.linux.setrlimit --> | ||
| 710 | <g id="node33" class="node"> | ||
| 711 | <title>os.linux.setrlimit</title> | ||
| 712 | <polygon fill="none" stroke="#000000" points="2797.88,-459 2655.12,-459 2655.12,-346 2797.88,-346 2797.88,-459"/> | ||
| 713 | <text text-anchor="middle" x="2726.5" y="-437.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 714 | <text text-anchor="middle" x="2726.5" y="-416.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.setrlimit</text> | ||
| 715 | <text text-anchor="middle" x="2726.5" y="-395.9" font-family="Arial" font-size="18.00" fill="#000000">0.85%</text> | ||
| 716 | <text text-anchor="middle" x="2726.5" y="-374.9" font-family="Arial" font-size="18.00" fill="#000000">(0.22%)</text> | ||
| 717 | <text text-anchor="middle" x="2726.5" y="-353.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 718 | </g> | ||
| 719 | <!-- os.linux.setrlimit->os.linux.prlimit --> | ||
| 720 | <g id="edge33" class="edge"> | ||
| 721 | <title>os.linux.setrlimit->os.linux.prlimit</title> | ||
| 722 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2726.5,-345.51C2726.5,-326.96 2726.5,-306.3 2726.5,-287.66"/> | ||
| 723 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2727.06,-287.93 2726.5,-286.33 2725.94,-287.93 2727.06,-287.93"/> | ||
| 724 | <text text-anchor="middle" x="2751.62" y="-319.9" font-family="Arial" font-size="18.00" fill="#000000">0.62%</text> | ||
| 725 | <text text-anchor="middle" x="2751.62" y="-298.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 726 | </g> | ||
| 727 | <!-- os.linux.sigaction->debug.assert --> | ||
| 728 | <g id="edge34" class="edge"> | ||
| 729 | <title>os.linux.sigaction->debug.assert</title> | ||
| 730 | <path fill="none" stroke="#000000" stroke-width="0.29" d="M3451.68,-707.29C3398.09,-679.12 3333.42,-645.68 3319.5,-641 3216.84,-606.49 3091.36,-589.45 3017.75,-581.84"/> | ||
| 731 | <polygon fill="#000000" stroke="#000000" stroke-width="0.29" points="3017.94,-580.91 3015.16,-581.58 3017.74,-582.79 3017.94,-580.91"/> | ||
| 732 | <text text-anchor="middle" x="3428.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">3.59%</text> | ||
| 733 | <text text-anchor="middle" x="3428.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">15×</text> | ||
| 734 | </g> | ||
| 735 | <!-- os.linux.sigaction->memset --> | ||
| 736 | <g id="edge35" class="edge"> | ||
| 737 | <title>os.linux.sigaction->memset</title> | ||
| 738 | <path fill="none" stroke="#000000" stroke-width="0.38" d="M3475.14,-691.73C3473.37,-688.86 3471.72,-685.95 3470.25,-683 3462.87,-668.24 3457.99,-651.14 3454.77,-635.02"/> | ||
| 739 | <polygon fill="#000000" stroke="#000000" stroke-width="0.38" points="3455.89,-635.07 3454.23,-632.23 3453.76,-635.48 3455.89,-635.07"/> | ||
| 740 | <text text-anchor="middle" x="3495.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">4.78%</text> | ||
| 741 | <text text-anchor="middle" x="3495.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">10×</text> | ||
| 742 | </g> | ||
| 743 | <!-- os.linux.sigaction->os.linux.getErrno --> | ||
| 744 | <g id="edge36" class="edge"> | ||
| 745 | <title>os.linux.sigaction->os.linux.getErrno</title> | ||
| 746 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M3533.39,-691.71C3535.64,-641.37 3530.92,-567.93 3492.5,-519 3359.06,-349.05 3100.4,-273.3 2971.46,-244.92"/> | ||
| 747 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="2971.67,-244.25 2969.57,-244.51 2971.37,-245.62 2971.67,-244.25"/> | ||
| 748 | <text text-anchor="middle" x="3509.62" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">1.99%</text> | ||
| 749 | <text text-anchor="middle" x="3509.62" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 750 | </g> | ||
| 751 | <!-- os.linux.sigaction->os.linux.x86_64.syscall4 --> | ||
| 752 | <g id="edge37" class="edge"> | ||
| 753 | <title>os.linux.sigaction->os.linux.x86_64.syscall4</title> | ||
| 754 | <path fill="none" stroke="#000000" stroke-width="0.14" d="M3563.62,-691.71C3581.16,-659.39 3598.5,-617.16 3598.5,-576.5 3598.5,-576.5 3598.5,-576.5 3598.5,-228.5 3598.5,-157.73 3396.92,-104.14 3267.89,-77.09"/> | ||
| 755 | <polygon fill="#000000" stroke="#000000" stroke-width="0.14" points="3268.37,-76.51 3266.38,-76.77 3268.1,-77.81 3268.37,-76.51"/> | ||
| 756 | <text text-anchor="middle" x="3623.62" y="-406.4" font-family="Arial" font-size="18.00" fill="#000000">1.75%</text> | ||
| 757 | <text text-anchor="middle" x="3623.62" y="-385.4" font-family="Arial" font-size="18.00" fill="#000000">5×</text> | ||
| 758 | </g> | ||
| 759 | <!-- os.linux.tls.initTLS --> | ||
| 760 | <g id="node36" class="node"> | ||
| 761 | <title>os.linux.tls.initTLS</title> | ||
| 762 | <polygon fill="none" stroke="#000000" points="3344.5,-1710 3184.5,-1710 3184.5,-1597 3344.5,-1597 3344.5,-1710"/> | ||
| 763 | <text text-anchor="middle" x="3264.5" y="-1688.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 764 | <text text-anchor="middle" x="3264.5" y="-1667.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.tls.initTLS</text> | ||
| 765 | <text text-anchor="middle" x="3264.5" y="-1646.9" font-family="Arial" font-size="18.00" fill="#000000">19.28%</text> | ||
| 766 | <text text-anchor="middle" x="3264.5" y="-1625.9" font-family="Arial" font-size="18.00" fill="#000000">(7.62%)</text> | ||
| 767 | <text text-anchor="middle" x="3264.5" y="-1604.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 768 | </g> | ||
| 769 | <!-- os.linux.tls.initStaticTLS->os.linux.tls.initTLS --> | ||
| 770 | <g id="edge38" class="edge"> | ||
| 771 | <title>os.linux.tls.initStaticTLS->os.linux.tls.initTLS</title> | ||
| 772 | <path fill="none" stroke="#000000" stroke-width="1.54" d="M3264.5,-1840.68C3264.5,-1804.19 3264.5,-1756.43 3264.5,-1718.42"/> | ||
| 773 | <polygon fill="#000000" stroke="#000000" stroke-width="1.54" points="3266.67,-1718.66 3264.5,-1712.46 3262.33,-1718.66 3266.67,-1718.66"/> | ||
| 774 | <text text-anchor="middle" x="3294.5" y="-1779.4" font-family="Arial" font-size="18.00" fill="#000000">19.28%</text> | ||
| 775 | <text text-anchor="middle" x="3294.5" y="-1758.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 776 | </g> | ||
| 777 | <!-- os.linux.tls.prepareTLS --> | ||
| 778 | <g id="node37" class="node"> | ||
| 779 | <title>os.linux.tls.prepareTLS</title> | ||
| 780 | <polygon fill="none" stroke="#000000" points="3536.62,-1588 3338.38,-1588 3338.38,-1475 3536.62,-1475 3536.62,-1588"/> | ||
| 781 | <text text-anchor="middle" x="3437.5" y="-1566.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 782 | <text text-anchor="middle" x="3437.5" y="-1545.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.tls.prepareTLS</text> | ||
| 783 | <text text-anchor="middle" x="3437.5" y="-1524.9" font-family="Arial" font-size="18.00" fill="#000000">2.22%</text> | ||
| 784 | <text text-anchor="middle" x="3437.5" y="-1503.9" font-family="Arial" font-size="18.00" fill="#000000">(1.59%)</text> | ||
| 785 | <text text-anchor="middle" x="3437.5" y="-1482.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 786 | </g> | ||
| 787 | <!-- os.linux.tls.initStaticTLS->os.linux.tls.prepareTLS --> | ||
| 788 | <g id="edge39" class="edge"> | ||
| 789 | <title>os.linux.tls.initStaticTLS->os.linux.tls.prepareTLS</title> | ||
| 790 | <path fill="none" stroke="#000000" stroke-width="0.18" d="M3320.65,-1840.6C3322.72,-1837.77 3324.68,-1834.89 3326.5,-1832 3375.01,-1754.67 3407.03,-1652.94 3423.71,-1590.17"/> | ||
| 791 | <polygon fill="#000000" stroke="#000000" stroke-width="0.18" points="3424.37,-1590.55 3424.2,-1588.33 3422.95,-1590.17 3424.37,-1590.55"/> | ||
| 792 | <text text-anchor="middle" x="3406.62" y="-1779.4" font-family="Arial" font-size="18.00" fill="#000000">2.22%</text> | ||
| 793 | <text text-anchor="middle" x="3406.62" y="-1758.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 794 | </g> | ||
| 795 | <!-- os.linux.tls.setThreadPointer --> | ||
| 796 | <g id="node38" class="node"> | ||
| 797 | <title>os.linux.tls.setThreadPointer</title> | ||
| 798 | <polygon fill="none" stroke="#000000" points="3013,-1344 2772,-1344 2772,-1231 3013,-1231 3013,-1344"/> | ||
| 799 | <text text-anchor="middle" x="2892.5" y="-1322.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 800 | <text text-anchor="middle" x="2892.5" y="-1301.9" font-family="Arial" font-size="18.00" fill="#000000">os.linux.tls.setThreadPointer</text> | ||
| 801 | <text text-anchor="middle" x="2892.5" y="-1280.9" font-family="Arial" font-size="18.00" fill="#000000">0.75%</text> | ||
| 802 | <text text-anchor="middle" x="2892.5" y="-1259.9" font-family="Arial" font-size="18.00" fill="#000000">(0.26%)</text> | ||
| 803 | <text text-anchor="middle" x="2892.5" y="-1238.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 804 | </g> | ||
| 805 | <!-- os.linux.tls.initStaticTLS->os.linux.tls.setThreadPointer --> | ||
| 806 | <g id="edge40" class="edge"> | ||
| 807 | <title>os.linux.tls.initStaticTLS->os.linux.tls.setThreadPointer</title> | ||
| 808 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M3221.32,-1840.55C3193.86,-1804.12 3158.15,-1755.13 3129.25,-1710 3048.09,-1583.27 2964.48,-1427.3 2921.67,-1345.21"/> | ||
| 809 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2922.4,-1345.41 2921.17,-1344.25 2921.41,-1345.93 2922.4,-1345.41"/> | ||
| 810 | <text text-anchor="middle" x="3154.62" y="-1657.4" font-family="Arial" font-size="18.00" fill="#000000">0.75%</text> | ||
| 811 | <text text-anchor="middle" x="3154.62" y="-1636.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 812 | </g> | ||
| 813 | <!-- os.linux.tls.initTLS->memcpy --> | ||
| 814 | <g id="edge42" class="edge"> | ||
| 815 | <title>os.linux.tls.initTLS->memcpy</title> | ||
| 816 | <path fill="none" stroke="#000000" stroke-width="0.11" d="M3269.99,-1596.81C3275.13,-1545.18 3282.19,-1476.13 3283.25,-1475 3291.3,-1466.4 3324.03,-1468.68 3335.5,-1466 3385.36,-1454.35 3441.56,-1437.1 3479.22,-1424.93"/> | ||
| 817 | <polygon fill="#000000" stroke="#000000" stroke-width="0.11" points="3479.11,-1425.59 3480.55,-1424.5 3478.75,-1424.46 3479.11,-1425.59"/> | ||
| 818 | <text text-anchor="middle" x="3308.62" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">1.37%</text> | ||
| 819 | <text text-anchor="middle" x="3308.62" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 820 | </g> | ||
| 821 | <!-- os.linux.tls.initTLS->mem.alignForward__anon_3355 --> | ||
| 822 | <g id="edge41" class="edge"> | ||
| 823 | <title>os.linux.tls.initTLS->mem.alignForward__anon_3355</title> | ||
| 824 | <path fill="none" stroke="#000000" stroke-width="0.49" d="M3212.92,-1596.83C3210.91,-1593.91 3209.01,-1590.96 3207.25,-1588 3185.32,-1551.02 3169.11,-1505.28 3158.53,-1469.49"/> | ||
| 825 | <polygon fill="#000000" stroke="#000000" stroke-width="0.49" points="3159.81,-1469.51 3157.65,-1466.5 3157.46,-1470.2 3159.81,-1469.51"/> | ||
| 826 | <text text-anchor="middle" x="3232.62" y="-1535.4" font-family="Arial" font-size="18.00" fill="#000000">6.12%</text> | ||
| 827 | <text text-anchor="middle" x="3232.62" y="-1514.4" font-family="Arial" font-size="18.00" fill="#000000">2×</text> | ||
| 828 | </g> | ||
| 829 | <!-- os.linux.tls.initTLS->memset --> | ||
| 830 | <g id="edge43" class="edge"> | ||
| 831 | <title>os.linux.tls.initTLS->memset</title> | ||
| 832 | <path fill="none" stroke="#000000" stroke-width="0.33" d="M3256.66,-1596.63C3254.06,-1560.27 3255.53,-1512.75 3273.5,-1475 3276.07,-1469.6 3280.25,-1471.02 3283.5,-1466 3345.54,-1370.38 3343.18,-1334.34 3362.5,-1222 3373.45,-1158.35 3351.76,-699.78 3378.5,-641 3384.71,-627.35 3395.31,-615.27 3406.41,-605.37"/> | ||
| 833 | <polygon fill="#000000" stroke="#000000" stroke-width="0.33" points="3406.84,-606.35 3408.35,-603.67 3405.5,-604.82 3406.84,-606.35"/> | ||
| 834 | <text text-anchor="middle" x="3391.62" y="-1047.4" font-family="Arial" font-size="18.00" fill="#000000">4.16%</text> | ||
| 835 | <text text-anchor="middle" x="3391.62" y="-1026.4" font-family="Arial" font-size="18.00" fill="#000000">6×</text> | ||
| 836 | </g> | ||
| 837 | <!-- os.linux.tls.prepareTLS->memset --> | ||
| 838 | <g id="edge44" class="edge"> | ||
| 839 | <title>os.linux.tls.prepareTLS->memset</title> | ||
| 840 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M3437.5,-1474.75C3437.5,-1425.7 3437.5,-1352.36 3437.5,-1288.5 3437.5,-1288.5 3437.5,-1288.5 3437.5,-834 3437.5,-765.21 3441.47,-686.18 3444.64,-634.01"/> | ||
| 841 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="3445.19,-634.11 3444.73,-632.48 3444.07,-634.04 3445.19,-634.11"/> | ||
| 842 | <text text-anchor="middle" x="3462.62" y="-1047.4" font-family="Arial" font-size="18.00" fill="#000000">0.54%</text> | ||
| 843 | <text text-anchor="middle" x="3462.62" y="-1026.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 844 | </g> | ||
| 845 | <!-- os.linux.tls.setThreadPointer->debug.assert --> | ||
| 846 | <g id="edge45" class="edge"> | ||
| 847 | <title>os.linux.tls.setThreadPointer->debug.assert</title> | ||
| 848 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2887.2,-1230.62C2880.88,-1149.29 2874.07,-993.93 2899.25,-865 2904.73,-836.93 2915.24,-832.66 2922.5,-805 2937.56,-747.61 2946.23,-680.18 2950.88,-633.52"/> | ||
| 849 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2951.41,-633.79 2951.01,-632.14 2950.3,-633.68 2951.41,-633.79"/> | ||
| 850 | <text text-anchor="middle" x="2924.62" y="-925.4" font-family="Arial" font-size="18.00" fill="#000000">0.24%</text> | ||
| 851 | <text text-anchor="middle" x="2924.62" y="-904.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 852 | </g> | ||
| 853 | <!-- os.maybeIgnoreSigpipe->os.sigaction --> | ||
| 854 | <g id="edge46" class="edge"> | ||
| 855 | <title>os.maybeIgnoreSigpipe->os.sigaction</title> | ||
| 856 | <path fill="none" stroke="#000000" stroke-width="0.46" d="M3730.57,-1718.89C3741.55,-1619.56 3757.73,-1405.68 3719.5,-1231 3706.78,-1172.9 3697.21,-1158.68 3664.5,-1109 3663.18,-1107 3661.8,-1104.99 3660.37,-1103"/> | ||
| 857 | <polygon fill="#000000" stroke="#000000" stroke-width="0.46" points="3661.35,-1102.33 3658.39,-1100.29 3659.43,-1103.73 3661.35,-1102.33"/> | ||
| 858 | <text text-anchor="middle" x="3768.62" y="-1413.4" font-family="Arial" font-size="18.00" fill="#000000">5.77%</text> | ||
| 859 | <text text-anchor="middle" x="3768.62" y="-1392.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 860 | </g> | ||
| 861 | <!-- os.setrlimit --> | ||
| 862 | <g id="node41" class="node"> | ||
| 863 | <title>os.setrlimit</title> | ||
| 864 | <polygon fill="none" stroke="#000000" points="2885.25,-632 2783.75,-632 2783.75,-519 2885.25,-519 2885.25,-632"/> | ||
| 865 | <text text-anchor="middle" x="2834.5" y="-610.9" font-family="Arial" font-size="18.00" fill="#000000">zig-hi</text> | ||
| 866 | <text text-anchor="middle" x="2834.5" y="-589.9" font-family="Arial" font-size="18.00" fill="#000000">os.setrlimit</text> | ||
| 867 | <text text-anchor="middle" x="2834.5" y="-568.9" font-family="Arial" font-size="18.00" fill="#000000">1.67%</text> | ||
| 868 | <text text-anchor="middle" x="2834.5" y="-547.9" font-family="Arial" font-size="18.00" fill="#000000">(0.43%)</text> | ||
| 869 | <text text-anchor="middle" x="2834.5" y="-526.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 870 | </g> | ||
| 871 | <!-- os.setrlimit->os.linux.getErrno --> | ||
| 872 | <g id="edge47" class="edge"> | ||
| 873 | <title>os.setrlimit->os.linux.getErrno</title> | ||
| 874 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2852.44,-518.55C2857.94,-499.78 2863.56,-478.63 2867.5,-459 2879.09,-401.21 2886.29,-334.13 2890.31,-287.67"/> | ||
| 875 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2890.85,-287.94 2890.43,-286.3 2889.73,-287.85 2890.85,-287.94"/> | ||
| 876 | <text text-anchor="middle" x="2909.62" y="-406.4" font-family="Arial" font-size="18.00" fill="#000000">0.40%</text> | ||
| 877 | <text text-anchor="middle" x="2909.62" y="-385.4" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 878 | </g> | ||
| 879 | <!-- os.setrlimit->os.linux.setrlimit --> | ||
| 880 | <g id="edge48" class="edge"> | ||
| 881 | <title>os.setrlimit->os.linux.setrlimit</title> | ||
| 882 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2799.14,-518.51C2787.42,-499.96 2774.37,-479.3 2762.6,-460.66"/> | ||
| 883 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2763.09,-460.38 2761.76,-459.33 2762.14,-460.98 2763.09,-460.38"/> | ||
| 884 | <text text-anchor="middle" x="2818.62" y="-492.9" font-family="Arial" font-size="18.00" fill="#000000">0.85%</text> | ||
| 885 | <text text-anchor="middle" x="2818.62" y="-471.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 886 | </g> | ||
| 887 | <!-- start.expandStackSize->debug.assert --> | ||
| 888 | <g id="edge53" class="edge"> | ||
| 889 | <title>start.expandStackSize->debug.assert</title> | ||
| 890 | <path fill="none" stroke="#000000" stroke-width="0.1" d="M2842.71,-691.67C2851.09,-674.18 2861.95,-655.64 2875.25,-641 2880.29,-635.46 2883.45,-636.42 2889.5,-632 2891.17,-630.78 2892.85,-629.53 2894.54,-628.26"/> | ||
| 891 | <polygon fill="#000000" stroke="#000000" stroke-width="0.1" points="2894.77,-628.78 2895.71,-627.37 2894.09,-627.89 2894.77,-628.78"/> | ||
| 892 | <text text-anchor="middle" x="2900.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">0.24%</text> | ||
| 893 | <text text-anchor="middle" x="2900.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 894 | </g> | ||
| 895 | <!-- start.expandStackSize->os.getrlimit --> | ||
| 896 | <g id="edge54" class="edge"> | ||
| 897 | <title>start.expandStackSize->os.getrlimit</title> | ||
| 898 | <path fill="none" stroke="#000000" stroke-width="0.16" d="M2740.62,-691.51C2703.51,-665.81 2660.53,-636.06 2627.6,-613.26"/> | ||
| 899 | <polygon fill="#000000" stroke="#000000" stroke-width="0.16" points="2628.08,-612.74 2626.03,-612.18 2627.28,-613.89 2628.08,-612.74"/> | ||
| 900 | <text text-anchor="middle" x="2752.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">1.98%</text> | ||
| 901 | <text text-anchor="middle" x="2752.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 902 | </g> | ||
| 903 | <!-- start.expandStackSize->os.setrlimit --> | ||
| 904 | <g id="edge55" class="edge"> | ||
| 905 | <title>start.expandStackSize->os.setrlimit</title> | ||
| 906 | <path fill="none" stroke="#000000" stroke-width="0.13" d="M2787.93,-691.57C2786.9,-688.72 2786,-685.86 2785.25,-683 2780.52,-664.94 2779.27,-658.68 2785.25,-641 2786.06,-638.61 2786.99,-636.25 2788.03,-633.91"/> | ||
| 907 | <polygon fill="#000000" stroke="#000000" stroke-width="0.13" points="2788.59,-634.19 2788.77,-632.29 2787.45,-633.67 2788.59,-634.19"/> | ||
| 908 | <text text-anchor="middle" x="2810.62" y="-665.9" font-family="Arial" font-size="18.00" fill="#000000">1.67%</text> | ||
| 909 | <text text-anchor="middle" x="2810.62" y="-644.9" font-family="Arial" font-size="18.00" fill="#000000">1×</text> | ||
| 910 | </g> | ||
| 911 | </g> | ||
| 912 | </svg> | ||
diff --git a/static/assets/posts/wap/emulator.mp4 b/static/assets/posts/wap/emulator.mp4 new file mode 100755 index 0000000..e4f59aa --- /dev/null +++ b/static/assets/posts/wap/emulator.mp4 | |||
| Binary files differ | |||
diff --git a/static/assets/posts/wap/phones.gif b/static/assets/posts/wap/phones.gif new file mode 100755 index 0000000..15f99e2 --- /dev/null +++ b/static/assets/posts/wap/phones.gif | |||
| Binary files differ | |||
diff --git a/static/assets/posts/world-clock/enclosure.stl b/static/assets/posts/world-clock/enclosure.stl new file mode 100755 index 0000000..99f3d1a --- /dev/null +++ b/static/assets/posts/world-clock/enclosure.stl | |||
| Binary files differ | |||
diff --git a/static/assets/posts/world-clock/hardware.jpg b/static/assets/posts/world-clock/hardware.jpg new file mode 100755 index 0000000..315a04d --- /dev/null +++ b/static/assets/posts/world-clock/hardware.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/world-clock/world-clock.jpg b/static/assets/posts/world-clock/world-clock.jpg new file mode 100755 index 0000000..afdb6e2 --- /dev/null +++ b/static/assets/posts/world-clock/world-clock.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/yapyap/hello.png b/static/assets/posts/yapyap/hello.png new file mode 100755 index 0000000..d141cd3 --- /dev/null +++ b/static/assets/posts/yapyap/hello.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/yapyap/pid1.jpg b/static/assets/posts/yapyap/pid1.jpg new file mode 100755 index 0000000..99bc1d8 --- /dev/null +++ b/static/assets/posts/yapyap/pid1.jpg | |||
| Binary files differ | |||
diff --git a/static/assets/posts/zed/zed-1.png b/static/assets/posts/zed/zed-1.png new file mode 100755 index 0000000..c4da2f6 --- /dev/null +++ b/static/assets/posts/zed/zed-1.png | |||
| Binary files differ | |||
diff --git a/static/assets/posts/zed/zed-2.png b/static/assets/posts/zed/zed-2.png new file mode 100755 index 0000000..38ce72d --- /dev/null +++ b/static/assets/posts/zed/zed-2.png | |||
| Binary files differ | |||
diff --git a/static/assets/urls.txt b/static/assets/urls.txt new file mode 100644 index 0000000..fe02a65 --- /dev/null +++ b/static/assets/urls.txt | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | # Announcements | ||
| 2 | https://harelang.org/index.xml Announcements | ||
| 3 | https://emacsredux.com/atom.xml Announcements | ||
| 4 | https://crawl.develz.org/wordpress/feed Announcements | ||
| 5 | |||
| 6 | # Comics | ||
| 7 | https://workchronicles.com/feed/ Comics | ||
| 8 | https://www.monkeyuser.com/index.xml Comics | ||
| 9 | https://turnoff.us/feed.xml Comics | ||
| 10 | |||
| 11 | # Blogs | ||
| 12 | https://danluu.com/atom.xml Blogs "~Dan Luu" | ||
| 13 | https://www.andreinc.net/feed.xml Blogs | ||
| 14 | https://voussoir.net/writing/writing.atom Blogs "~Ethan Dalool / Voussoir" | ||
| 15 | https://blog.regehr.org/feed Blogs | ||
| 16 | https://richiejp.com/atom.xml Blogs "~Richard Palethorpe" | ||
| 17 | https://szymonkaliski.com/feed.xml Blogs | ||
| 18 | https://world.hey.com/dhh/feed.atom Blogs | ||
| 19 | https://world.hey.com/jason/feed.atom Blogs | ||
| 20 | https://mitchellh.com/feed.xml Blogs | ||
| 21 | https://matt-rickard.com/rss Blogs | ||
| 22 | https://solar.lowtechmagazine.com/posts/index.xml Blogs | ||
| 23 | https://utcc.utoronto.ca/~cks/space/blog/?atom Blogs | ||
| 24 | https://neil.computer/rss/ Blogs | ||
| 25 | https://matduggan.com/rss/ Blogs | ||
| 26 | https://michael.stapelberg.ch/feed.xml Blogs | ||
| 27 | https://offbeatpursuit.com/blog/index.rss Blogs "~Offbeatpursuit - Blog" | ||
| 28 | https://offbeatpursuit.com/paste/index.rss Blogs "~Offbeatpursuit - Paste" | ||
| 29 | https://offbeatpursuit.com/notes/index.rss Blogs "~Offbeatpursuit - Notes" | ||
| 30 | https://journal.valeriansaliou.name/rss/ Blogs | ||
| 31 | https://www.taniarascia.com/rss.xml Blogs | ||
| 32 | https://snarky.ca/rss/ Blogs | ||
| 33 | https://www.jeffgeerling.com/blog.xml Blogs | ||
| 34 | https://serokell.io/blog.rss.xml Blogs | ||
| 35 | https://www.duskborn.com/index.xml Blogs | ||
| 36 | https://mirzapandzo.com/rss.xml Blogs | ||
| 37 | https://mitjafelicijan.com/feed.xml Blogs | ||
