File: sym.sh
   1 #!/bin/sh
   2 
   3 # The MIT License (MIT)
   4 #
   5 # Copyright © 2025 pacman64
   6 #
   7 # Permission is hereby granted, free of charge, to any person obtaining a copy
   8 # of this software and associated documentation files (the “Software”), to deal
   9 # in the Software without restriction, including without limitation the rights
  10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  11 # copies of the Software, and to permit persons to whom the Software is
  12 # furnished to do so, subject to the following conditions:
  13 #
  14 # The above copyright notice and this permission notice shall be included in
  15 # all copies or substantial portions of the Software.
  16 #
  17 # THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  18 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  19 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  20 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  21 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  22 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  23 # SOFTWARE.
  24 
  25 
  26 # sym [names...]
  27 #
  28 # Lookup various hard-to-type symbols by their common names/aliases. All/any
  29 # dashes in the names given are ignored, and are thus supported, so to speak.
  30 
  31 
  32 case "$1" in
  33     -h|--h|-help|--help)
  34         awk '/^# +sym /, /^$/ { gsub(/^# ?/, ""); print }' "$0"
  35         exit 0
  36     ;;
  37 esac
  38 
  39 [ "$1" = "--" ] && shift
  40 
  41 # when given no names, show (almost) all name-symbol pairs supported
  42 if [ $# -eq 0 ]; then
  43     # show all built-in `here-doc` entries from this very script/file
  44     awk '/^[a-z]/ && NF == 2' "${0}"
  45     exit 0
  46 fi
  47 
  48 # lookup built-in dataset
  49 awk -v allnames="${*}" '
  50 # figure out which names to lookup, and handle special names upfront
  51 BEGIN {
  52     # lowercase symbol names, also ignoring any dashes in them
  53     allnames = tolower(allnames)
  54     gsub(/[:_-]/, "", allnames)
  55     gsub(/^ +| +$/, "", allnames)
  56 
  57     # split space-separated items into an array named `symbols`
  58     split(allnames, symbols, / +/)
  59 
  60     special["crlf"] = "\r"
  61     special["ff"] = "\f"
  62     special["lf"] = "\n"
  63     special["nil"] = "\000"
  64     special["nul"] = "\000"
  65     special["null"] = "\000"
  66     special["space"] = " "
  67     special["tab"] = "\t"
  68     special["utf8bom"] = "\xef\xbb\xbf"
  69     special["vtab"] = "\v"
  70 
  71     for (i in symbols) {
  72         s = symbols[i]
  73         for (j in special) {
  74             if (j == s) {
  75                 got[i] = special[j]
  76                 break
  77             }
  78         }
  79     }
  80 }
  81 
  82 # try to match each symbol to each built-in data line
  83 {
  84     for (i in symbols) {
  85         if ($1 == symbols[i]) {
  86             got[i] = $2
  87             next
  88         }
  89     }
  90 }
  91 
  92 # report any not-found-type errors
  93 END {
  94     n = length(symbols)
  95     fs = "\x1b[31mno matching symbols found for `%s`\x1b[0m\n"
  96 
  97     for (i = 1; i <= n; i++) {
  98         if (got[i]) {
  99             print got[i]
 100             continue
 101         } else {
 102             printf fs, symbols[i]
 103             failures++
 104         }
 105     }
 106 
 107     if (failures > 0) { exit 1 }
 108 }
 109 ' << 'ENDOFDATA'
 110 adash        -
 111 aeq          ≈
 112 altcolon     :
 113 altqmark     ?
 114 altque       ?
 115 altques      ?
 116 altquest     ?
 117 altquestion  ?
 118 altvbar      |
 119 altverbar    |
 120 altvertbar   |
 121 almost       ≈
 122 amp          &
 123 ampersand    &
 124 apos         ’
 125 apostrophe   ’
 126 approx       ≅
 127 asterisk     *
 128 atleast      ≥
 129 atmost       ≤
 130 backquote    `
 131 backslash    \
 132 backtick     `
 133 ball         ●
 134 bang         !
 135 base64       ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
 136 block        █
 137 bquo         `
 138 bquote       `
 139 bslash       \
 140 bullet       •
 141 caret        ^
 142 cdot         ·
 143 circle       ●
 144 cloud        ☁️
 145 colon        :
 146 comma        ,
 147 copyright    ©
 148 cquote       ”
 149 crap        💩
 150 cross        ×
 151 dash         —
 152 deg          °
 153 degree       °
 154 diameter     ⌀
 155 doc          📄
 156 document     📄
 157 dollar       $
 158 dot          .
 159 dquo         "
 160 dquote       "
 161 doublequote  "
 162 ellip        …
 163 ellipsis     …
 164 email        @
 165 emdash       —
 166 emptyset     ∅
 167 endash       –
 168 eq           =
 169 equal        =
 170 equals       =
 171 excl         !
 172 exclam       !
 173 exclamation  !
 174 faces      😀😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😑😒😓😔😕😖😗😘😙😚😛😜😝😞😟😠😡😢😣😤😥😦😧😨😩😪😫😬😭😮😯😰😱😲😳😴😵😶😷🙁🙂🙃🙄🧐👶🤓🤐🤑🤒🤔🤕🤗🤠🤡🤢🤣🤤🤥🤧🤨🤩🤪🤫🤬🤭🤮🤯
 175 file       📄
 176 fullmoon   🌕
 177 fullstop   .
 178 geq        ≥
 179 greatereq  ≥
 180 grin       😀
 181 happy      😀
 182 heart      ❤️
 183 hellip     …
 184 hellipsis  …
 185 hole       ○
 186 hyphen     -
 187 laugh      😄
 188 laughter   😄
 189 leq        ≤
 190 less       <
 191 lesseq     ≤
 192 lightning 🌩️
 193 ldquo      “
 194 ldquote    “
 195 lol        😂
 196 lsquo      ‘
 197 lsquote    ‘
 198 mdash      —
 199 mdot       ·
 200 more       >
 201 music        🎵
 202 musicalnote  🎵
 203 ndash        –
 204 neq          ≠
 205 not          ¬
 206 note         🎵
 207 notequal     ≠
 208 notequals    ≠
 209 oquote       “
 210 party        🥳
 211 period       .
 212 pipe         |
 213 question     ?
 214 rain         🌧️
 215 rdquo        ”
 216 rdquote      ”
 217 rofl         🤣
 218 rsquo        ’
 219 rsquote      ’
 220 semicolon    ;
 221 sharp        #
 222 shit         💩
 223 slash        /
 224 slasher      ⧸
 225 slashier     ⧸
 226 smile        🙂
 227 smirk        😏
 228 snow         ❄️
 229 square       ■
 230 squo         '
 231 squote       '
 232 singlequote  '
 233 star         ⭐
 234 sun          ☀️
 235 tilde        ~
 236 vbar         |
 237 verbar       |
 238 vertbar      |
 239 verticalbar  |
 240 vellip       ⋮
 241 vellipsis    ⋮
 242 
 243 alpha    α
 244 beta     β
 245 delta    δ
 246 eps      ε
 247 epsilon  ε
 248 gamma    γ
 249 lambda   λ
 250 omega    ω
 251 pi       π
 252 sigma    σ
 253 tau      τ
 254 theta    θ
 255 
 256 bigsigma      Σ
 257 capsigma      Σ
 258 capitalsigma  Σ
 259 
 260 alphabet        abcdefghijklmnopqrstuvwxyz
 261 asciiletters    abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
 262 digits          0123456789
 263 greek           αβγδεζηθικλμνξοπρστυφχψω
 264 hex             0123456789abcdef
 265 hexa            0123456789abcdef
 266 hexadec         0123456789abcdef
 267 hexadecimal     0123456789abcdef
 268 hexdigits       0123456789abcdefABCDEF
 269 inf             ∞
 270 infinity        ∞
 271 latin           abcdefghijklmnopqrstuvwxyz
 272 letters         abcdefghijklmnopqrstuvwxyz
 273 lower           abcdefghijklmnopqrstuvwxyz
 274 lowercase       abcdefghijklmnopqrstuvwxyz
 275 lowercasegreek  αβγδεζηθικλμνξοπρστυφχψω
 276 lowergreek      αβγδεζηθικλμνξοπρστυφχψω
 277 lowercasehex    0123456789abcdef
 278 lowerhex        0123456789abcdef
 279 math            +-×÷²³±
 280 midascii        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
 281 octal           01234567
 282 octaldigits     01234567
 283 octdigits       01234567
 284 other           ✓✗✔❌
 285 plusminus       ±
 286 prod            Π
 287 product         Π
 288 punct           !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 289 punctuation     !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 290 sum             Σ
 291 summation       Σ
 292 upper           ABCDEFGHIJKLMNOPQRSTUVWXYZ
 293 uppercase       ABCDEFGHIJKLMNOPQRSTUVWXYZ
 294 uppercasegreek  ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
 295 uppergreek      ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
 296 uppercasehex    0123456789ABCDEF
 297 upperhex        0123456789ABCDEF
 298 visascii        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
 299 visibleascii    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
 300 
 301 cedilla      ç
 302 cedille      ç
 303 circumflexa  â
 304 circumflexe  ê
 305 circumflexi  î
 306 circumflexo  ô
 307 circumflexu  û
 308 frenchc      ç
 309 ene          ñ
 310 spanishn     ñ
 311 oslash       Ø
 312 oslashed     Ø
 313 ostroke      Ø
 314 ostroked     Ø
 315 slasho       Ø
 316 slashedo     Ø
 317 strokeo      Ø
 318 strokedo     Ø
 319 
 320 aud  A$
 321 brl  R$
 322 cad  C$
 323 chf  CHF
 324 clp  CLP
 325 cny  元
 326 czk  Kč
 327 dkk  DKK
 328 eur  €
 329 gbp  £
 330 hkd  HK$
 331 huf  Ft
 332 idr  Rp
 333 ils  ₪
 334 inr  ₹
 335 jpy  ¥
 336 krw  ₩
 337 mxn  MXN
 338 nok  NOK
 339 nzd  NZ$
 340 php  ₱
 341 pln  zł
 342 rub  ₽
 343 sar  ﷼
 344 sek  SEK
 345 sgd  S$
 346 thb  ฿
 347 try  ₺
 348 twd  NT$
 349 usd  $
 350 zar  R
 351 
 352 baht            ฿
 353 britishpound    £
 354 cent            ¢
 355 cents           ¢
 356 euro            €
 357 indianrupee     ₹
 358 koruna          Kč
 359 naira           ₦
 360 newshekel       ₪
 361 philippinepeso  ₱
 362 pound           £
 363 poundsterling   £
 364 renminbi        元
 365 riyal           ﷼
 366 ruble           ₽
 367 rupee           ₹
 368 saudiriyal      ﷼
 369 shekel          ₪
 370 sterling        £
 371 turkishlira     ₺
 372 won             ₩
 373 yen             ¥
 374 zloty           zł
 375 
 376 afghanistan    🇦🇫
 377 america        🇺🇸
 378 algeria        🇩🇿
 379 angola         🇦🇴
 380 arabia         🇸🇦
 381 arabemirates   🇦🇪
 382 argentina      🇦🇷
 383 australia      🇦🇺
 384 austria        🇦🇹
 385 bangladesh     🇧🇩
 386 belgium        🇧🇪
 387 brazil         🇧🇷
 388 britain        🇬🇧
 389 canada         🇨🇦
 390 chile          🇨🇱
 391 china          🇨🇳
 392 colombia       🇨🇴
 393 czechia        🇨🇿
 394 czechrepublic  🇨🇿
 395 denmark        🇩🇰
 396 dominicanrepublic  🇩🇴
 397 drc            🇨🇩
 398 drcongo        🇨🇩
 399 ecuador        🇪🇨
 400 egypt          🇪🇬
 401 emirates       🇦🇪
 402 england        🇬🇧
 403 ethiopia       🇪🇹
 404 europe         🇪🇺
 405 europeanunion  🇪🇺
 406 finland        🇫🇮
 407 france         🇫🇷
 408 germany        🇩🇪
 409 ghana          🇬🇭
 410 greatbritain   🇬🇧
 411 greece         🇬🇷
 412 holland        🇳🇱
 413 hungary        🇭🇺
 414 india          🇮🇳
 415 indonesia      🇮🇩
 416 iran           🇮🇷
 417 iraq           🇮🇶
 418 ireland        🇮🇪
 419 israel         🇮🇱
 420 italy          🇮🇹
 421 japan          🇯🇵
 422 kazakhstan     🇰🇿
 423 kenya          🇰🇪
 424 korea          🇰🇷
 425 kuwait         🇰🇼
 426 madagascar     🇲🇬
 427 malaysia       🇲🇾
 428 mexico         🇲🇽
 429 morocco        🇲🇦
 430 mozambique     🇲🇿
 431 myanmar        🇲🇲
 432 nepal          🇳🇵
 433 netherlands    🇳🇱
 434 newzealand     🇳🇿
 435 nigeria        🇳🇬
 436 northkorea     🇰🇵
 437 norway         🇳🇴
 438 pakistan       🇵🇰
 439 peru           🇵🇪
 440 philippines    🇵🇭
 441 poland         🇵🇱
 442 portugal       🇵🇹
 443 qatar          🇶🇦
 444 rok            🇰🇷
 445 romania        🇷🇴
 446 russia         🇷🇺
 447 saudiarabia    🇸🇦
 448 singapore      🇸🇬
 449 somalia        🇸🇴
 450 southafrica    🇿🇦
 451 southkorea     🇰🇷
 452 spain          🇪🇸
 453 srilanka       🇱🇰
 454 sudan          🇸🇩
 455 sweden         🇸🇪
 456 switzerland    🇨🇭
 457 taiwan         🇹🇼
 458 tanzania       🇹🇿
 459 thailand       🇹🇭
 460 turkey         🇹🇷
 461 uganda         🇺🇬
 462 ukraine        🇺🇦
 463 unitedarab     🇦🇪
 464 unitedarabemirates  🇦🇪
 465 unitedemirates 🇦🇪
 466 unitedkingdom  🇬🇧
 467 unitedstates   🇺🇸
 468 uzbekistan     🇺🇿
 469 yemen          🇾🇪
 470 venezuela      🇻🇪
 471 vietnam        🇻🇳
 472 
 473 af  🇦🇫
 474 ax  🇦🇽
 475 al  🇦🇱
 476 dz  🇩🇿
 477 as  🇦🇸
 478 ad  🇦🇩
 479 ao  🇦🇴
 480 ai  🇦🇮
 481 aq  🇦🇶
 482 ag  🇦🇬
 483 ar  🇦🇷
 484 am  🇦🇲
 485 aw  🇦🇼
 486 au  🇦🇺
 487 at  🇦🇹
 488 az  🇦🇿
 489 bs  🇧🇸
 490 bh  🇧🇭
 491 bd  🇧🇩
 492 bb  🇧🇧
 493 by  🇧🇾
 494 be  🇧🇪
 495 bz  🇧🇿
 496 bj  🇧🇯
 497 bm  🇧🇲
 498 bt  🇧🇹
 499 bo  🇧🇴
 500 bq  🇧🇶
 501 ba  🇧🇦
 502 bw  🇧🇼
 503 bv  🇧🇻
 504 br  🇧🇷
 505 io  🇮🇴
 506 bn  🇧🇳
 507 bg  🇧🇬
 508 bf  🇧🇫
 509 bi  🇧🇮
 510 cv  🇨🇻
 511 kh  🇰🇭
 512 cm  🇨🇲
 513 ca  🇨🇦
 514 ky  🇰🇾
 515 cf  🇨🇫
 516 td  🇹🇩
 517 cl  🇨🇱
 518 cn  🇨🇳
 519 cx  🇨🇽
 520 cc  🇨🇨
 521 co  🇨🇴
 522 km  🇰🇲
 523 cd  🇨🇩
 524 cg  🇨🇬
 525 ck  🇨🇰
 526 cr  🇨🇷
 527 ci  🇨🇮
 528 hr  🇭🇷
 529 cu  🇨🇺
 530 cw  🇨🇼
 531 cy  🇨🇾
 532 cz  🇨🇿
 533 dk  🇩🇰
 534 dj  🇩🇯
 535 dm  🇩🇲
 536 do  🇩🇴
 537 ec  🇪🇨
 538 eg  🇪🇬
 539 sv  🇸🇻
 540 gq  🇬🇶
 541 er  🇪🇷
 542 ee  🇪🇪
 543 sz  🇸🇿
 544 et  🇪🇹
 545 eu  🇪🇺
 546 fk  🇫🇰
 547 fo  🇫🇴
 548 fj  🇫🇯
 549 fi  🇫🇮
 550 fr  🇫🇷
 551 gf  🇬🇫
 552 pf  🇵🇫
 553 tf  🇹🇫
 554 ga  🇬🇦
 555 gm  🇬🇲
 556 ge  🇬🇪
 557 de  🇩🇪
 558 gh  🇬🇭
 559 gi  🇬🇮
 560 gr  🇬🇷
 561 gl  🇬🇱
 562 gd  🇬🇩
 563 gp  🇬🇵
 564 gu  🇬🇺
 565 gt  🇬🇹
 566 gg  🇬🇬
 567 gn  🇬🇳
 568 gw  🇬🇼
 569 gy  🇬🇾
 570 ht  🇭🇹
 571 hm  🇭🇲
 572 va  🇻🇦
 573 hn  🇭🇳
 574 hk  🇭🇰
 575 hu  🇭🇺
 576 is  🇮🇸
 577 in  🇮🇳
 578 id  🇮🇩
 579 ir  🇮🇷
 580 iq  🇮🇶
 581 ie  🇮🇪
 582 im  🇮🇲
 583 il  🇮🇱
 584 it  🇮🇹
 585 jm  🇯🇲
 586 jp  🇯🇵
 587 je  🇯🇪
 588 jo  🇯🇴
 589 kz  🇰🇿
 590 ke  🇰🇪
 591 ki  🇰🇮
 592 kp  🇰🇵
 593 kr  🇰🇷
 594 kw  🇰🇼
 595 kg  🇰🇬
 596 la  🇱🇦
 597 lv  🇱🇻
 598 lb  🇱🇧
 599 ls  🇱🇸
 600 lr  🇱🇷
 601 ly  🇱🇾
 602 li  🇱🇮
 603 lt  🇱🇹
 604 lu  🇱🇺
 605 mo  🇲🇴
 606 mk  🇲🇰
 607 mg  🇲🇬
 608 mw  🇲🇼
 609 my  🇲🇾
 610 mv  🇲🇻
 611 ml  🇲🇱
 612 mt  🇲🇹
 613 mh  🇲🇭
 614 mq  🇲🇶
 615 mr  🇲🇷
 616 mu  🇲🇺
 617 yt  🇾🇹
 618 mx  🇲🇽
 619 fm  🇫🇲
 620 md  🇲🇩
 621 mc  🇲🇨
 622 mn  🇲🇳
 623 me  🇲🇪
 624 ms  🇲🇸
 625 ma  🇲🇦
 626 mz  🇲🇿
 627 mm  🇲🇲
 628 na  🇳🇦
 629 nr  🇳🇷
 630 np  🇳🇵
 631 nl  🇳🇱
 632 nc  🇳🇨
 633 nz  🇳🇿
 634 ni  🇳🇮
 635 ne  🇳🇪
 636 ng  🇳🇬
 637 nu  🇳🇺
 638 nf  🇳🇫
 639 mp  🇲🇵
 640 no  🇳🇴
 641 om  🇴🇲
 642 pk  🇵🇰
 643 pw  🇵🇼
 644 ps  🇵🇸
 645 pa  🇵🇦
 646 pg  🇵🇬
 647 py  🇵🇾
 648 pe  🇵🇪
 649 ph  🇵🇭
 650 pn  🇵🇳
 651 pl  🇵🇱
 652 pt  🇵🇹
 653 pr  🇵🇷
 654 qa  🇶🇦
 655 re  🇷🇪
 656 ro  🇷🇴
 657 ru  🇷🇺
 658 rw  🇷🇼
 659 bl  🇧🇱
 660 sh  🇸🇭
 661 kn  🇰🇳
 662 lc  🇱🇨
 663 mf  🇲🇫
 664 pm  🇵🇲
 665 vc  🇻🇨
 666 ws  🇼🇸
 667 sm  🇸🇲
 668 st  🇸🇹
 669 sa  🇸🇦
 670 sn  🇸🇳
 671 rs  🇷🇸
 672 sc  🇸🇨
 673 sl  🇸🇱
 674 sg  🇸🇬
 675 sx  🇸🇽
 676 sk  🇸🇰
 677 si  🇸🇮
 678 sb  🇸🇧
 679 so  🇸🇴
 680 za  🇿🇦
 681 gs  🇬🇸
 682 ss  🇸🇸
 683 es  🇪🇸
 684 lk  🇱🇰
 685 sd  🇸🇩
 686 sr  🇸🇷
 687 sj  🇸🇯
 688 se  🇸🇪
 689 ch  🇨🇭
 690 sy  🇸🇾
 691 tw  🇹🇼
 692 tj  🇹🇯
 693 tz  🇹🇿
 694 th  🇹🇭
 695 tl  🇹🇱
 696 tg  🇹🇬
 697 tk  🇹🇰
 698 to  🇹🇴
 699 tt  🇹🇹
 700 tn  🇹🇳
 701 tr  🇹🇷
 702 tm  🇹🇲
 703 tc  🇹🇨
 704 tv  🇹🇻
 705 ug  🇺🇬
 706 ua  🇺🇦
 707 ae  🇦🇪
 708 gb  🇬🇧
 709 um  🇺🇲
 710 us  🇺🇸
 711 uy  🇺🇾
 712 uz  🇺🇿
 713 vu  🇻🇺
 714 ve  🇻🇪
 715 vn  🇻🇳
 716 vg  🇻🇬
 717 vi  🇻🇮
 718 wf  🇼🇫
 719 eh  🇪🇭
 720 ye  🇾🇪
 721 zm  🇿🇲
 722 zw  🇿🇼
 723 
 724 afg  🇦🇫
 725 ala  🇦🇽
 726 alb  🇦🇱
 727 dza  🇩🇿
 728 asm  🇦🇸
 729 and  🇦🇩
 730 ago  🇦🇴
 731 aia  🇦🇮
 732 ata  🇦🇶
 733 atg  🇦🇬
 734 arg  🇦🇷
 735 arm  🇦🇲
 736 abw  🇦🇼
 737 aus  🇦🇺
 738 aut  🇦🇹
 739 aze  🇦🇿
 740 bhs  🇧🇸
 741 bhr  🇧🇭
 742 bgd  🇧🇩
 743 brb  🇧🇧
 744 blr  🇧🇾
 745 bel  🇧🇪
 746 blz  🇧🇿
 747 ben  🇧🇯
 748 bmu  🇧🇲
 749 btn  🇧🇹
 750 bol  🇧🇴
 751 bes  🇧🇶
 752 bih  🇧🇦
 753 bwa  🇧🇼
 754 bvt  🇧🇻
 755 bra  🇧🇷
 756 iot  🇮🇴
 757 brn  🇧🇳
 758 bgr  🇧🇬
 759 bfa  🇧🇫
 760 bdi  🇧🇮
 761 cpv  🇨🇻
 762 khm  🇰🇭
 763 cmr  🇨🇲
 764 can  🇨🇦
 765 cym  🇰🇾
 766 caf  🇨🇫
 767 tcd  🇹🇩
 768 chl  🇨🇱
 769 chn  🇨🇳
 770 cxr  🇨🇽
 771 cck  🇨🇨
 772 col  🇨🇴
 773 com  🇰🇲
 774 cod  🇨🇩
 775 cog  🇨🇬
 776 cok  🇨🇰
 777 cri  🇨🇷
 778 civ  🇨🇮
 779 hrv  🇭🇷
 780 cub  🇨🇺
 781 cuw  🇨🇼
 782 cyp  🇨🇾
 783 cze  🇨🇿
 784 dnk  🇩🇰
 785 dji  🇩🇯
 786 dma  🇩🇲
 787 dom  🇩🇴
 788 ecu  🇪🇨
 789 egy  🇪🇬
 790 slv  🇸🇻
 791 gnq  🇬🇶
 792 eri  🇪🇷
 793 est  🇪🇪
 794 swz  🇸🇿
 795 eth  🇪🇹
 796 flk  🇫🇰
 797 fro  🇫🇴
 798 fji  🇫🇯
 799 fin  🇫🇮
 800 fra  🇫🇷
 801 guf  🇬🇫
 802 pyf  🇵🇫
 803 atf  🇹🇫
 804 gab  🇬🇦
 805 gmb  🇬🇲
 806 geo  🇬🇪
 807 deu  🇩🇪
 808 gha  🇬🇭
 809 gib  🇬🇮
 810 grc  🇬🇷
 811 grl  🇬🇱
 812 grd  🇬🇩
 813 glp  🇬🇵
 814 gum  🇬🇺
 815 gtm  🇬🇹
 816 ggy  🇬🇬
 817 gin  🇬🇳
 818 gnb  🇬🇼
 819 guy  🇬🇾
 820 hti  🇭🇹
 821 hmd  🇭🇲
 822 vat  🇻🇦
 823 hnd  🇭🇳
 824 hkg  🇭🇰
 825 hun  🇭🇺
 826 isl  🇮🇸
 827 ind  🇮🇳
 828 idn  🇮🇩
 829 irn  🇮🇷
 830 irq  🇮🇶
 831 irl  🇮🇪
 832 imn  🇮🇲
 833 isr  🇮🇱
 834 ita  🇮🇹
 835 jam  🇯🇲
 836 jpn  🇯🇵
 837 jey  🇯🇪
 838 jor  🇯🇴
 839 kaz  🇰🇿
 840 ken  🇰🇪
 841 kir  🇰🇮
 842 prk  🇰🇵
 843 kor  🇰🇷
 844 kwt  🇰🇼
 845 kgz  🇰🇬
 846 lao  🇱🇦
 847 lva  🇱🇻
 848 lbn  🇱🇧
 849 lso  🇱🇸
 850 lbr  🇱🇷
 851 lby  🇱🇾
 852 lie  🇱🇮
 853 ltu  🇱🇹
 854 lux  🇱🇺
 855 mac  🇲🇴
 856 mkd  🇲🇰
 857 mdg  🇲🇬
 858 mwi  🇲🇼
 859 mys  🇲🇾
 860 mdv  🇲🇻
 861 mli  🇲🇱
 862 mlt  🇲🇹
 863 mhl  🇲🇭
 864 mtq  🇲🇶
 865 mrt  🇲🇷
 866 mus  🇲🇺
 867 myt  🇾🇹
 868 mex  🇲🇽
 869 fsm  🇫🇲
 870 mda  🇲🇩
 871 mco  🇲🇨
 872 mng  🇲🇳
 873 mne  🇲🇪
 874 msr  🇲🇸
 875 mar  🇲🇦
 876 moz  🇲🇿
 877 mmr  🇲🇲
 878 nam  🇳🇦
 879 nru  🇳🇷
 880 npl  🇳🇵
 881 nld  🇳🇱
 882 ncl  🇳🇨
 883 nzl  🇳🇿
 884 nic  🇳🇮
 885 ner  🇳🇪
 886 nga  🇳🇬
 887 niu  🇳🇺
 888 nfk  🇳🇫
 889 mnp  🇲🇵
 890 nor  🇳🇴
 891 omn  🇴🇲
 892 pak  🇵🇰
 893 plw  🇵🇼
 894 pse  🇵🇸
 895 pan  🇵🇦
 896 png  🇵🇬
 897 pry  🇵🇾
 898 per  🇵🇪
 899 phl  🇵🇭
 900 pcn  🇵🇳
 901 pol  🇵🇱
 902 prt  🇵🇹
 903 pri  🇵🇷
 904 qat  🇶🇦
 905 reu  🇷🇪
 906 rou  🇷🇴
 907 rus  🇷🇺
 908 rwa  🇷🇼
 909 blm  🇧🇱
 910 shn  🇸🇭
 911 kna  🇰🇳
 912 lca  🇱🇨
 913 maf  🇲🇫
 914 spm  🇵🇲
 915 vct  🇻🇨
 916 wsm  🇼🇸
 917 smr  🇸🇲
 918 stp  🇸🇹
 919 sau  🇸🇦
 920 sen  🇸🇳
 921 srb  🇷🇸
 922 syc  🇸🇨
 923 sle  🇸🇱
 924 sgp  🇸🇬
 925 sxm  🇸🇽
 926 svk  🇸🇰
 927 svn  🇸🇮
 928 slb  🇸🇧
 929 som  🇸🇴
 930 zaf  🇿🇦
 931 sgs  🇬🇸
 932 ssd  🇸🇸
 933 esp  🇪🇸
 934 lka  🇱🇰
 935 sdn  🇸🇩
 936 sur  🇸🇷
 937 sjm  🇸🇯
 938 swe  🇸🇪
 939 che  🇨🇭
 940 syr  🇸🇾
 941 twn  🇹🇼
 942 tjk  🇹🇯
 943 tza  🇹🇿
 944 tha  🇹🇭
 945 tls  🇹🇱
 946 tgo  🇹🇬
 947 tkl  🇹🇰
 948 ton  🇹🇴
 949 tto  🇹🇹
 950 tun  🇹🇳
 951 tur  🇹🇷
 952 tkm  🇹🇲
 953 tca  🇹🇨
 954 tuv  🇹🇻
 955 uga  🇺🇬
 956 ukr  🇺🇦
 957 are  🇦🇪
 958 gbr  🇬🇧
 959 uae  🇦🇪
 960 umi  🇺🇲
 961 usa  🇺🇸
 962 ury  🇺🇾
 963 uzb  🇺🇿
 964 vut  🇻🇺
 965 ven  🇻🇪
 966 vnm  🇻🇳
 967 vgb  🇻🇬
 968 vir  🇻🇮
 969 wlf  🇼🇫
 970 esh  🇪🇭
 971 yem  🇾🇪
 972 zmb  🇿🇲
 973 zwe  🇿🇼
 974 ENDOFDATA