(* TEST
include tool-ocaml-lib
flags = "-w -a"
ocaml_script_as_argument = "true"
* setup-ocaml-build-env
** ocaml
*)

open Lib;;
Gc.compact ();;
let _ = Stdlib.do_at_exit();;

(**
       0 CONSTINT 42
       2 PUSHACC0
       3 MAKEBLOCK1 0
       5 POP 1
       7 SETGLOBAL Lib
       9 BRANCH 746
      11 RESTART
      12 GRAB 1
      14 ACC0
      15 BRANCHIFNOT 28
      17 ACC1
      18 PUSHACC1
      19 GETFIELD1
      20 PUSHOFFSETCLOSURE0
      21 APPLY2
      22 PUSHACC1
      23 GETFIELD0
      24 MAKEBLOCK2 0
      26 RETURN 2
      28 ACC1
      29 RETURN 2
      31 RESTART
      32 GRAB 3
      34 CONST0
      35 PUSHACC4
      36 LEINT
      37 BRANCHIFNOT 42
      39 CONST0
      40 RETURN 4
      42 ACC3
      43 PUSHACC3
      44 PUSHACC3
      45 PUSHACC3
      46 C_CALL4 caml_input
      48 PUSHCONST0
      49 PUSHACC1
      50 EQ
      51 BRANCHIFNOT 58
      53 GETGLOBAL End_of_file
      55 MAKEBLOCK1 0
      57 RAISE
      58 ACC0
      59 PUSHACC5
      60 SUBINT
      61 PUSHACC1
      62 PUSHACC5
      63 ADDINT
      64 PUSHACC4
      65 PUSHACC4
      66 PUSHOFFSETCLOSURE0
      67 APPTERM 4, 9
      70 ACC0
      71 C_CALL1 caml_input_scan_line
      73 PUSHCONST0
      74 PUSHACC1
      75 EQ
      76 BRANCHIFNOT 83
      78 GETGLOBAL End_of_file
      80 MAKEBLOCK1 0
      82 RAISE
      83 CONST0
      84 PUSHACC1
      85 GTINT
      86 BRANCHIFNOT 107
      88 ACC0
      89 OFFSETINT -1
      91 C_CALL1 create_string
      93 PUSHACC1
      94 OFFSETINT -1
      96 PUSHCONST0
      97 PUSHACC2
      98 PUSHACC5
      99 C_CALL4 caml_input
     101 ACC2
     102 C_CALL1 caml_input_char
     104 ACC0
     105 RETURN 3
     107 ACC0
     108 NEGINT
     109 C_CALL1 create_string
     111 PUSHACC1
     112 NEGINT
     113 PUSHCONST0
     114 PUSHACC2
     115 PUSHACC5
     116 C_CALL4 caml_input
     118 CONST0
     119 PUSHTRAP 130
     121 ACC6
     122 PUSHOFFSETCLOSURE0
     123 APPLY1
     124 PUSHACC5
     125 PUSHENVACC1
     126 APPLY2
     127 POPTRAP
     128 RETURN 3
     130 PUSHGETGLOBAL End_of_file
     132 PUSHACC1
     133 GETFIELD0
     134 EQ
     135 BRANCHIFNOT 140
     137 ACC1
     138 RETURN 4
     140 ACC0
     141 RAISE
     142 ACC0
     143 C_CALL1 caml_flush
     145 RETURN 1
     147 RESTART
     148 GRAB 1
     150 ACC1
     151 PUSHACC1
     152 C_CALL2 caml_output_char
     154 RETURN 2
     156 RESTART
     157 GRAB 1
     159 ACC1
     160 PUSHACC1
     161 C_CALL2 caml_output_char
     163 RETURN 2
     165 RESTART
     166 GRAB 1
     168 ACC1
     169 PUSHACC1
     170 C_CALL2 caml_output_int
     172 RETURN 2
     174 RESTART
     175 GRAB 1
     177 ACC1
     178 PUSHACC1
     179 C_CALL2 caml_seek_out
     181 RETURN 2
     183 ACC0
     184 C_CALL1 caml_pos_out
     186 RETURN 1
     188 ACC0
     189 C_CALL1 caml_channel_size
     191 RETURN 1
     193 RESTART
     194 GRAB 1
     196 ACC1
     197 PUSHACC1
     198 C_CALL2 caml_set_binary_mode
     200 RETURN 2
     202 ACC0
     203 C_CALL1 caml_input_char
     205 RETURN 1
     207 ACC0
     208 C_CALL1 caml_input_char
     210 RETURN 1
     212 ACC0
     213 C_CALL1 caml_input_int
     215 RETURN 1
     217 ACC0
     218 C_CALL1 input_value
     220 RETURN 1
     222 RESTART
     223 GRAB 1
     225 ACC1
     226 PUSHACC1
     227 C_CALL2 caml_seek_in
     229 RETURN 2
     231 ACC0
     232 C_CALL1 caml_pos_in
     234 RETURN 1
     236 ACC0
     237 C_CALL1 caml_channel_size
     239 RETURN 1
     241 ACC0
     242 C_CALL1 caml_close_channel
     244 RETURN 1
     246 RESTART
     247 GRAB 1
     249 ACC1
     250 PUSHACC1
     251 C_CALL2 caml_set_binary_mode
     253 RETURN 2
     255 CONST0
     256 PUSHENVACC1
     257 APPLY1
     258 ACC0
     259 C_CALL1 sys_exit
     261 RETURN 1
     263 CONST0
     264 PUSHENVACC1
     265 GETFIELD0
     266 APPTERM1 2
     268 CONST0
     269 PUSHENVACC1
     270 APPLY1
     271 CONST0
     272 PUSHENVACC2
     273 APPTERM1 2
     275 ENVACC1
     276 GETFIELD0
     277 PUSHACC0
     278 PUSHACC2
     279 CLOSURE 2, 268
     282 PUSHENVACC1
     283 SETFIELD0
     284 RETURN 2
     286 ENVACC1
     287 C_CALL1 caml_flush
     289 ENVACC2
     290 C_CALL1 caml_flush
     292 RETURN 1
     294 CONST0
     295 PUSHENVACC1
     296 APPLY1
     297 C_CALL1 float_of_string
     299 RETURN 1
     301 CONST0
     302 PUSHENVACC1
     303 APPLY1
     304 C_CALL1 int_of_string
     306 RETURN 1
     308 ENVACC2
     309 C_CALL1 caml_flush
     311 ENVACC1
     312 PUSHENVACC3
     313 APPTERM1 2
     315 CONSTINT 13
     317 PUSHENVACC1
     318 C_CALL2 caml_output_char
     320 ENVACC1
     321 C_CALL1 caml_flush
     323 RETURN 1
     325 ACC0
     326 PUSHENVACC1
     327 PUSHENVACC2
     328 APPLY2
     329 CONSTINT 13
     331 PUSHENVACC1
     332 C_CALL2 caml_output_char
     334 ENVACC1
     335 C_CALL1 caml_flush
     337 RETURN 1
     339 ACC0
     340 PUSHENVACC1
     341 APPLY1
     342 PUSHENVACC2
     343 PUSHENVACC3
     344 APPTERM2 3
     346 ACC0
     347 PUSHENVACC1
     348 APPLY1
     349 PUSHENVACC2
     350 PUSHENVACC3
     351 APPTERM2 3
     353 ACC0
     354 PUSHENVACC1
     355 PUSHENVACC2
     356 APPTERM2 3
     358 ACC0
     359 PUSHENVACC1
     360 C_CALL2 caml_output_char
     362 RETURN 1
     364 CONSTINT 13
     366 PUSHENVACC1
     367 C_CALL2 caml_output_char
     369 ENVACC1
     370 C_CALL1 caml_flush
     372 RETURN 1
     374 ACC0
     375 PUSHENVACC1
     376 PUSHENVACC2
     377 APPLY2
     378 CONSTINT 13
     380 PUSHENVACC1
     381 C_CALL2 caml_output_char
     383 RETURN 1
     385 ACC0
     386 PUSHENVACC1
     387 APPLY1
     388 PUSHENVACC2
     389 PUSHENVACC3
     390 APPTERM2 3
     392 ACC0
     393 PUSHENVACC1
     394 APPLY1
     395 PUSHENVACC2
     396 PUSHENVACC3
     397 APPTERM2 3
     399 ACC0
     400 PUSHENVACC1
     401 PUSHENVACC2
     402 APPTERM2 3
     404 ACC0
     405 PUSHENVACC1
     406 C_CALL2 caml_output_char
     408 RETURN 1
     410 RESTART
     411 GRAB 3
     413 CONST0
     414 PUSHACC3
     415 LTINT
     416 BRANCHIF 427
     418 ACC1
     419 C_CALL1 ml_string_length
     421 PUSHACC4
     422 PUSHACC4
     423 ADDINT
     424 GTINT
     425 BRANCHIFNOT 432
     427 GETGLOBAL "really_input"
     429 PUSHENVACC1
     430 APPTERM1 5
     432 ACC3
     433 PUSHACC3
     434 PUSHACC3
     435 PUSHACC3
     436 PUSHENVACC2
     437 APPTERM 4, 8
     440 RESTART
     441 GRAB 3
     443 CONST0
     444 PUSHACC3
     445 LTINT
     446 BRANCHIF 457
     448 ACC1
     449 C_CALL1 ml_string_length
     451 PUSHACC4
     452 PUSHACC4
     453 ADDINT
     454 GTINT
     455 BRANCHIFNOT 462
     457 GETGLOBAL "input"
     459 PUSHENVACC1
     460 APPTERM1 5
     462 ACC3
     463 PUSHACC3
     464 PUSHACC3
     465 PUSHACC3
     466 C_CALL4 caml_input
     468 RETURN 4
     470 ACC0
     471 PUSHCONST0
     472 PUSHGETGLOBAL <0>(0, <0>(6, 0))
     474 PUSHENVACC1
     475 APPTERM3 4
     477 ACC0
     478 PUSHCONST0
     479 PUSHGETGLOBAL <0>(0, <0>(7, 0))
     481 PUSHENVACC1
     482 APPTERM3 4
     484 RESTART
     485 GRAB 2
     487 ACC1
     488 PUSHACC1
     489 PUSHACC4
     490 C_CALL3 sys_open
     492 C_CALL1 caml_open_descriptor
     494 RETURN 3
     496 ACC0
     497 C_CALL1 caml_flush
     499 ACC0
     500 C_CALL1 caml_close_channel
     502 RETURN 1
     504 RESTART
     505 GRAB 1
     507 CONST0
     508 PUSHACC2
     509 PUSHACC2
     510 C_CALL3 output_value
     512 RETURN 2
     514 RESTART
     515 GRAB 3
     517 CONST0
     518 PUSHACC3
     519 LTINT
     520 BRANCHIF 531
     522 ACC1
     523 C_CALL1 ml_string_length
     525 PUSHACC4
     526 PUSHACC4
     527 ADDINT
     528 GTINT
     529 BRANCHIFNOT 536
     531 GETGLOBAL "output"
     533 PUSHENVACC1
     534 APPTERM1 5
     536 ACC3
     537 PUSHACC3
     538 PUSHACC3
     539 PUSHACC3
     540 C_CALL4 caml_output
     542 RETURN 4
     544 RESTART
     545 GRAB 1
     547 ACC1
     548 C_CALL1 ml_string_length
     550 PUSHCONST0
     551 PUSHACC3
     552 PUSHACC3
     553 C_CALL4 caml_output
     555 RETURN 2
     557 ACC0
     558 PUSHCONSTINT 438
     560 PUSHGETGLOBAL <0>(1, <0>(3, <0>(4, <0>(6, 0))))
     562 PUSHENVACC1
     563 APPTERM3 4
     565 ACC0
     566 PUSHCONSTINT 438
     568 PUSHGETGLOBAL <0>(1, <0>(3, <0>(4, <0>(7, 0))))
     570 PUSHENVACC1
     571 APPTERM3 4
     573 RESTART
     574 GRAB 2
     576 ACC1
     577 PUSHACC1
     578 PUSHACC4
     579 C_CALL3 sys_open
     581 C_CALL1 caml_open_descriptor
     583 RETURN 3
     585 ACC0
     586 PUSHGETGLOBAL "%.12g"
     588 C_CALL2 format_float
     590 RETURN 1
     592 ACC0
     593 PUSHGETGLOBAL "%d"
     595 C_CALL2 format_int
     597 RETURN 1
     599 GETGLOBAL "false"
     601 PUSHACC1
     602 C_CALL2 string_equal
     604 BRANCHIFNOT 609
     606 CONST0
     607 RETURN 1
     609 GETGLOBAL "true"
     611 PUSHACC1
     612 C_CALL2 string_equal
     614 BRANCHIFNOT 619
     616 CONST1
     617 RETURN 1
     619 GETGLOBAL "bool_of_string"
     621 PUSHENVACC1
     622 APPTERM1 2
     624 ACC0
     625 BRANCHIFNOT 631
     627 GETGLOBAL "true"
     629 RETURN 1
     631 GETGLOBAL "false"
     633 RETURN 1
     635 CONST0
     636 PUSHACC1
     637 LTINT
     638 BRANCHIF 646
     640 CONSTINT 255
     642 PUSHACC1
     643 GTINT
     644 BRANCHIFNOT 651
     646 GETGLOBAL "char_of_int"
     648 PUSHENVACC1
     649 APPTERM1 2
     651 ACC0
     652 RETURN 1
     654 RESTART
     655 GRAB 1
     657 ACC0
     658 C_CALL1 ml_string_length
     660 PUSHACC2
     661 C_CALL1 ml_string_length
     663 PUSHACC0
     664 PUSHACC2
     665 ADDINT
     666 C_CALL1 create_string
     668 PUSHACC2
     669 PUSHCONST0
     670 PUSHACC2
     671 PUSHCONST0
     672 PUSHACC7
     673 C_CALL5 blit_string
     675 ACC1
     676 PUSHACC3
     677 PUSHACC2
     678 PUSHCONST0
     679 PUSHACC 8
     681 C_CALL5 blit_string
     683 ACC0
     684 RETURN 5
     686 CONSTINT -1
     688 PUSHACC1
     689 XORINT
     690 RETURN 1
     692 CONST0
     693 PUSHACC1
     694 GEINT
     695 BRANCHIFNOT 700
     697 ACC0
     698 RETURN 1
     700 ACC0
     701 NEGINT
     702 RETURN 1
     704 RESTART
     705 GRAB 1
     707 ACC1
     708 PUSHACC1
     709 C_CALL2 greaterequal
     711 BRANCHIFNOT 716
     713 ACC0
     714 RETURN 2
     716 ACC1
     717 RETURN 2
     719 RESTART
     720 GRAB 1
     722 ACC1
     723 PUSHACC1
     724 C_CALL2 lessequal
     726 BRANCHIFNOT 731
     728 ACC0
     729 RETURN 2
     731 ACC1
     732 RETURN 2
     734 ACC0
     735 PUSHGETGLOBAL Invalid_argument
     737 MAKEBLOCK2 0
     739 RAISE
     740 ACC0
     741 PUSHGETGLOBAL Failure
     743 MAKEBLOCK2 0
     745 RAISE
     746 CLOSURE 0, 740
     749 PUSH
     750 CLOSURE 0, 734
     753 PUSHGETGLOBAL "Pervasives.Exit"
     755 MAKEBLOCK1 0
     757 PUSHGETGLOBAL "Pervasives.Assert_failure"
     759 MAKEBLOCK1 0
     761 PUSH
     762 CLOSURE 0, 720
     765 PUSH
     766 CLOSURE 0, 705
     769 PUSH
     770 CLOSURE 0, 692
     773 PUSH
     774 CLOSURE 0, 686
     777 PUSHCONST0
     778 PUSHCONSTINT 31
     780 PUSHCONST1
     781 LSLINT
     782 EQ
     783 BRANCHIFNOT 789
     785 CONSTINT 30
     787 BRANCH 791
     789 CONSTINT 62
     791 PUSHCONST1
     792 LSLINT
     793 PUSHACC0
     794 OFFSETINT -1
     796 PUSH
     797 CLOSURE 0, 655
     800 PUSHACC 9
     802 CLOSURE 1, 635
     805 PUSH
     806 CLOSURE 0, 624
     809 PUSHACC 11
     811 CLOSURE 1, 599
     814 PUSH
     815 CLOSURE 0, 592
     818 PUSH
     819 CLOSURE 0, 585
     822 PUSH
     823 CLOSUREREC 0, 12
     827 CONST0
     828 C_CALL1 caml_open_descriptor
     830 PUSHCONST1
     831 C_CALL1 caml_open_descriptor
     833 PUSHCONST2
     834 C_CALL1 caml_open_descriptor
     836 PUSH
     837 CLOSURE 0, 574
     840 PUSHACC0
     841 CLOSURE 1, 565
     844 PUSHACC1
     845 CLOSURE 1, 557
     848 PUSH
     849 CLOSURE 0, 545
     852 PUSHACC 22
     854 CLOSURE 1, 515
     857 PUSH
     858 CLOSURE 0, 505
     861 PUSH
     862 CLOSURE 0, 496
     865 PUSH
     866 CLOSURE 0, 485
     869 PUSHACC0
     870 CLOSURE 1, 477
     873 PUSHACC1
     874 CLOSURE 1, 470
     877 PUSHACC 28
     879 CLOSURE 1, 441
     882 PUSH
     883 CLOSUREREC 0, 32
     887 ACC0
     888 PUSHACC 31
     890 CLOSURE 2, 411
     893 PUSHACC 22
     895 CLOSUREREC 1, 70
     899 ACC 15
     901 CLOSURE 1, 404
     904 PUSHACC 11
     906 PUSHACC 17
     908 CLOSURE 2, 399
     911 PUSHACC 12
     913 PUSHACC 18
     915 PUSHACC 23
     917 CLOSURE 3, 392
     920 PUSHACC 13
     922 PUSHACC 19
     924 PUSHACC 23
     926 CLOSURE 3, 385
     929 PUSHACC 14
     931 PUSHACC 20
     933 CLOSURE 2, 374
     936 PUSHACC 20
     938 CLOSURE 1, 364
     941 PUSHACC 20
     943 CLOSURE 1, 358
     946 PUSHACC 17
     948 PUSHACC 22
     950 CLOSURE 2, 353
     953 PUSHACC 18
     955 PUSHACC 23
     957 PUSHACC 29
     959 CLOSURE 3, 346
     962 PUSHACC 19
     964 PUSHACC 24
     966 PUSHACC 29
     968 CLOSURE 3, 339
     971 PUSHACC 20
     973 PUSHACC 25
     975 CLOSURE 2, 325
     978 PUSHACC 25
     980 CLOSURE 1, 315
     983 PUSHACC 12
     985 PUSHACC 28
     987 PUSHACC 30
     989 CLOSURE 3, 308
     992 PUSHACC0
     993 CLOSURE 1, 301
     996 PUSHACC1
     997 CLOSURE 1, 294
    1000 PUSHACC 29
    1002 PUSHACC 31
    1004 CLOSURE 2, 286
    1007 MAKEBLOCK1 0
    1009 PUSHACC0
    1010 CLOSURE 1, 275
    1013 PUSHACC1
    1014 CLOSURE 1, 263
    1017 PUSHACC0
    1018 CLOSURE 1, 255
    1021 PUSHACC1
    1022 PUSHACC 22
    1024 PUSHACC4
    1025 PUSHACC3
    1026 PUSH
    1027 CLOSURE 0, 247
    1030 PUSH
    1031 CLOSURE 0, 241
    1034 PUSH
    1035 CLOSURE 0, 236
    1038 PUSH
    1039 CLOSURE 0, 231
    1042 PUSH
    1043 CLOSURE 0, 223
    1046 PUSH
    1047 CLOSURE 0, 217
    1050 PUSH
    1051 CLOSURE 0, 212
    1054 PUSH
    1055 CLOSURE 0, 207
    1058 PUSHACC 32
    1060 PUSHACC 35
    1062 PUSHACC 33
    1064 PUSH
    1065 CLOSURE 0, 202
    1068 PUSHACC 41
    1070 PUSHACC 40
    1072 PUSHACC 42
    1074 PUSH
    1075 CLOSURE 0, 194
    1078 PUSHACC 46
    1080 PUSH
    1081 CLOSURE 0, 188
    1084 PUSH
    1085 CLOSURE 0, 183
    1088 PUSH
    1089 CLOSURE 0, 175
    1092 PUSHACC 51
    1094 PUSH
    1095 CLOSURE 0, 166
    1098 PUSH
    1099 CLOSURE 0, 157
    1102 PUSHACC 55
    1104 PUSHACC 57
    1106 PUSH
    1107 CLOSURE 0, 148
    1110 PUSH
    1111 CLOSURE 0, 142
    1114 PUSHACC 63
    1116 PUSHACC 62
    1118 PUSHACC 64
    1120 PUSHACC 38
    1122 PUSHACC 40
    1124 PUSHACC 42
    1126 PUSHACC 44
    1128 PUSHACC 46
    1130 PUSHACC 48
    1132 PUSHACC 50
    1134 PUSHACC 52
    1136 PUSHACC 54
    1138 PUSHACC 56
    1140 PUSHACC 58
    1142 PUSHACC 60
    1144 PUSHACC 62
    1146 PUSHACC 64
    1148 PUSHACC 66
    1150 PUSHACC 82
    1152 PUSHACC 84
    1154 PUSHACC 86
    1156 PUSHACC 88
    1158 PUSHACC 90
    1160 PUSHACC 92
    1162 PUSHACC 94
    1164 PUSHACC 96
    1166 PUSHACC 98
    1168 PUSHACC 100
    1170 PUSHACC 104
    1172 PUSHACC 104
    1174 PUSHACC 104
    1176 PUSHACC 108
    1178 PUSHACC 110
    1180 PUSHACC 112
    1182 PUSHACC 117
    1184 PUSHACC 117
    1186 PUSHACC 117
    1188 PUSHACC 117
    1190 MAKEBLOCK 69, 0
    1193 POP 53
    1195 SETGLOBAL Pervasives
    1197 CONST0
    1198 C_CALL1 gc_compaction
    1200 CONST0
    1201 PUSHGETGLOBALFIELD Pervasives, 68
    1204 APPLY1
    1205 ATOM0
    1206 SETGLOBAL T330-compact-2
    1208 STOP
**)
