diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b7ddf63..f864ded 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -9,7 +9,7 @@ on:
jobs:
test:
- name: OTP ${{matrix.otp_vsn}}
+ name: Test OTP ${{matrix.otp_vsn}}
strategy:
matrix:
otp_vsn: ['28', '27', '26']
@@ -40,3 +40,24 @@ jobs:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
verbose: true
+ benchmark:
+ name: Benchmark suite execution OTP ${{matrix.otp_vsn}}
+ strategy:
+ matrix:
+ otp_vsn: ['28', '27']
+ elixir_vsn: ['1.19']
+ rebar_vsn: ['3.27']
+ runs-on: 'ubuntu-24.04'
+ steps:
+ - uses: actions/checkout@v4
+ - uses: erlef/setup-beam@v1
+ with:
+ otp-version: ${{ matrix.otp_vsn }}
+ elixir-version: ${{ matrix.elixir_vsn }}
+ rebar3-version: ${{ matrix.rebar_vsn }}
+ - run: |
+ {
+ echo -e '## Benchmark Results\n\n```'
+ elixir bench.exs
+ echo '```'
+ } >> "$GITHUB_STEP_SUMMARY"
diff --git a/bench.exs b/bench.exs
new file mode 100644
index 0000000..f9e56b4
--- /dev/null
+++ b/bench.exs
@@ -0,0 +1,3774 @@
+# Usage:
+# elixir bench.exs
+# Optional:
+# BENCH_TIME=3 BENCH_WARMUP=1 elixir bench.exs
+#
+# Requires Elixir with Hex (Mix.install fetches Benchee).
+
+Mix.install([
+ {:benchee, "~> 1.5"},
+ {:exml, path: "."}
+])
+
+bench_time =
+ System.get_env("BENCH_TIME", "5")
+ |> String.to_integer()
+
+bench_warmup =
+ System.get_env("BENCH_WARMUP", "2")
+ |> String.to_integer()
+
+# --- Payloads: widely varying structure (size kept moderate so default time budget finishes) ---
+
+# Minimal self-closing
+xml_tiny = ~s()
+
+# Deep nesting (stack-heavy)
+xml_deep =
+ String.duplicate("", 180) <>
+ "txt" <>
+ String.duplicate("", 180)
+
+# Wide siblings (many elements, shallow)
+xml_wide =
+ "" <>
+ String.duplicate("", 400) <>
+ ""
+
+# Few nodes, many attributes per open tag (scan-heavy attribute regions)
+xml_attr_heavy =
+ "
+ Enum.map_join(1..120, " ", fn i -> "a#{i}=\"v#{i}\"" end) <>
+ ">"
+
+# Large CDATA block
+xml_big_cdata =
+ "
+ String.duplicate("Lorem ipsum dolor sit amet. ", 400) <>
+ "]]>"
+
+# Long PCDATA with entities only (no raw `<` — that would be invalid XML)
+xml_long_pcdata =
+ "
" <>
+ String.duplicate("word & space <tag> ' ", 250) <>
+ "
"
+
+# XMPP-ish single root: prefixed names, many attrs, nested children (single line — multiline broke rapidxml)
+xml_xmpp_like =
+ "" <>
+ "" <>
+ "Re: hi" <>
+ "" <>
+ String.duplicate("Hello world. ", 80) <>
+ "" <>
+ "t1" <>
+ "" <>
+ ""
+
+# Repetitive items (similar to cache-friendly microbench)
+xml_repetitive =
+ <<"">> <>
+ String.duplicate(
+ "- hello
",
+ 80
+ ) <>
+ <<"">>
+
+# Whitespace between tags (parser still tokenizes structure)
+xml_whitespacey =
+ String.duplicate(" \n \t ", 150) |> then(&("" <> &1 <> ""))
+
+lots_of_nesting = """
+
+ forward
+ matter
+ rule
+ 2110631293
+
+ -1123668053
+ inch
+ shirt
+ mother
+
+
+ correctly
+ -432222347
+ curve
+ discover
+ 1949532824
+
+ wild
+
+ purple
+
+"""
+
+big_and_nested = """
+
+
+ plain
+ excitement
+ massage
+
+
+ 248031970
+ direct
+ railroad
+ -1904208365.368702
+
+ 1204206517.8670857
+
+ 846369162
+
+ substance
+
+ made
+
+ till
+ song
+ -830222508
+
+ 871879663.2784119
+ 1756201904.5565512
+ -775308125.6553111
+ -1199885119.9381433
+ lion
+ -1149774051.5707827
+ pocket
+ -15237884
+
+
+ 498135283
+ although
+ 651650590.9088402
+
+ 2054632053
+ pink
+ variety
+
+ -854644132.5029886
+ damage
+ 1225780963.7471526
+ 637990387.7079465
+
+ warm
+
+ living
+ 962678864
+ scientific
+ -876964569
+ -2103942109.5152795
+ sent
+ 1823946742.0374508
+ rise
+ 102891159.02190733
+ own
+ -1755615907.8532484
+ -1016250118
+ -1872451707.0957427
+ 1062129572.9839873
+ few
+ 880418005.1643605
+ -452925058.6215837
+ say
+ 1109698275
+ press
+ 1758713974
+ call
+ 1363116726
+ tight
+ -1134567020
+ 228005372.9304161
+ interest
+ 1540875252
+ -1252910441.3734071
+ 1973685276.2826002
+ directly
+ 686125574.6102927
+ fastened
+ -1327143002
+ gray
+ -1504258454.3263366
+ went
+ 101736431.4167602
+ -381501617.3336005
+ young
+ 1998660039.029206
+ wash
+ magic
+ appropriate
+ -626211795
+ monkey
+ bound
+ family
+ little
+ gone
+ 1183970258.3877625
+ -478135121
+ 527753275.58941364
+ -1053347225.8018963
+ more
+ 1153166283.6410666
+ were
+ saddle
+ 961853908.4581466
+ 1975821088
+ -968821737.2972679
+ -1141407988
+ 1333384997
+ 772801977.8351998
+ somebody
+ after
+ -1912638815
+ ought
+ 76227975.6777358
+ 1231105758.4655128
+ -11226951
+ fly
+ shade
+ 929209108.5133643
+ -1592492219.9688952
+ 1900710599.7051265
+ 306339417
+ 1800063892
+ -263860098
+ 2003514589
+ cannot
+ log
+ cake
+ happen
+ storm
+ 288334263.1331117
+ -375486092.81676507
+ natural
+ mix
+ concerned
+ tobacco
+ running
+ -323649048.9883454
+ young
+ on
+ tired
+ 695893071.7946362
+ 886373919
+ baby
+ school
+ observe
+ -505115601.2492347
+ rhythm
+ -1933558360
+ nose
+ -1211281329.708237
+ let
+ stuck
+ such
+ 1615070470
+ using
+ deer
+ 427113596.74442744
+ quickly
+ -1156081949
+ four
+ -576660426.6742616
+ changing
+ 684685285.9497375
+ owner
+ belt
+ storm
+ 619657415
+ 1717638611.3010535
+ dull
+ 659872708.3534236
+ -1526655335.3969603
+ 901484050
+ place
+ locate
+ -1368648925
+ problem
+ -1553848137
+ throughout
+ agree
+ -1809354102.7802866
+ possibly
+ particular
+ 857106896.3754554
+ -1625105900.038957
+ 1605720345.3680284
+ 1450817798
+ nervous
+ -866805590
+ 450080675.9234855
+ -265555501
+ wagon
+ short
+ 829140437.0858846
+ accept
+ silver
+ -2105871328
+ pupil
+ 2000347473
+ 2045975639.793102
+ experience
+ fifth
+ 380092748
+ interest
+ -1559022630.0728285
+ -661437863
+ -886270507
+ throat
+ pie
+ 1826306206
+ southern
+ affect
+ rubbed
+ -1009555430
+ diagram
+ 903572117
+ newspaper
+ -1661233109
+ 1372024774.447657
+ individual
+ remember
+ 1749933967.6763613
+ 541872725.104429
+ 819177225.1968687
+ properly
+ diameter
+ -1452572929
+ this
+ 1266588714
+ replace
+ -1238985443
+ proud
+ alive
+ exciting
+ -1191574095.2960596
+ 287423998
+ -1628576520.5761998 |
+ beginning
+ 1354710794
+ 1887958047
+ hurried
+ -2138900081
+ therefore
+ shells
+ 101380974
+ -1555093611.2513075
+ -1960560149
+ row
+ tool
+ teach
+ -1321099757.2251685
+ 1463136680.1950788
+ 615314948
+ -2067363940.2517595
+ grandmother
+ -1311565689
+ -1566417632.0599673
+ 540077666.7925794
+ flower
+ 278867929
+ 1643997536
+ 1630722728
+ sick
+ 1633521670.460056
+ 836707548
+ 1895782155.0370026
+ here
+ -32502513
+ toward
+ -824243688
+ 556834938
+ local
+ 1437096146.04218
+
+ sort
+ -1127191198
+ -1672795447.8713162
+ hung
+ -1127361942.1941385
+ twice
+ mirror
+ pan
+ -365060913
+ species
+ travel
+ examine
+ -1916347167
+ 2031132689
+ 275486650.11145425
+ tears
+ -1500567782.50344
+ -173951575.89761782
+ -705950944
+ jump
+ -692651701.1083031
+ 931051255.8409944
+ -1912526153.7949557
+ author
+ -1645045723.5434425
+ war
+ 1445494770.5255249
+ -717969703
+ busy
+ song
+ fact
+ 118334765
+ 1821872297
+ scientific
+ have
+ 1953533956
+ 717490449
+ got
+ movie
+ explanation
+ choose
+ 1536427087.5744205
+ 1232778530.494471
+ dried
+ herd
+ kept
+ -790190101
+ reach
+ 689395510
+ society
+ 1407764267.3275037
+ rock
+ 693502035
+ grain
+ rubbed
+ -1446920124.2737288
+ food
+ 141619198
+ behavior
+ happen
+ 1071607569.0733886
+ 1933948271.3956237
+ 627059256
+ -1504476846.9121978
+ live
+ character
+ future
+ carried
+ spread
+ information
+ research
+ blanket
+ 5652062.228485107
+ -871418964
+ wood
+ 511052262
+ -597896982.2674756
+ floor
+ especially
+ widely
+ -962584252
+ small
+ 1465880972.6825907
+ -1717745271.1656532
+ -1216278753
+ -2081349035
+ characteristic
+ 2036816348
+ -213520947
+ -2082895518
+ national
+ 1514198411.0731506
+ -187760795.5191524
+ mathematics
+ -521312306.3129189
+ 1161400435
+ -1632299431.619916
+ 1095654153
+ 560910551
+ arrange
+ temperature
+ aid
+ 41935565
+ -796378350.2916353
+ determine
+ -689902290
+ 402398005
+ 1871284165.5726492
+ feed
+ dust
+ safe
+ minute
+ situation
+ children
+ poetry
+ 807744373
+ 276121146
+ 1308832954.8201156
+ life
+ -2017229423.4964023
+ 1813711329
+ -1557371165.0572593
+ sugar
+ -1307473993.0936742
+ toward
+ -723736791
+ bend
+ split
+ mouse
+ charge
+ nature
+ -2024239456.8037837
+ happily
+ smell
+ -2028767625
+ colony
+ someone
+ heart
+ funny
+ 1273057746.7119408
+ current
+ combination
+ 323655097
+ -1003422426
+ paragraph
+ 1412899792.103135
+ pack
+ account
+ -1019512365
+ 438009875.90596914
+ view
+ lady
+ 1522431762.2898834
+ -2017106986.912309
+ popular
+ compare
+ paid
+ -1960094359
+ friend
+ eight
+ town
+ these
+ clear
+ 1205010606
+ 1419785367.1304686
+ lost
+ fruit
+ 310738157
+ there
+ west
+ sentence
+ -1683074605.0786905
+ -2074032983
+ -1837004266.3519957
+
+ 69479667
+ continued
+ 1873895277.1202757
+ -962156253
+ characteristic
+ than
+ 216422193
+ bus
+ easily
+ spend
+ -251373118.96641922
+ show
+ 50075535.26827264
+ scared
+ scale
+ during
+ nature
+ fought
+ blood
+ writer
+ 905237280
+ 633106280.1930418
+ become
+ friendly
+ -459154528
+ whom
+ 284146776.28901124
+ neighbor
+ -180762212.32585287
+ remember
+ differ
+ -159087450.96293616
+ -1796576297
+ -1069715907
+ -2083267752.2540617
+ -833997860
+ -835822502
+ 1215891148
+ fast
+ train
+ -1154564665
+ -580154611.6805096
+ dear
+ -1630242832
+ 121994699.92742634
+ -1254301756.2024167
+ somebody
+
+ solution
+ 1988022154.1521096
+
+ 377231194
+ 604746863.7320173
+ 574632018
+ -1197415258.3753626
+ -1877460658.2268403
+
+ -1746860985.1897883
+ 1785891320
+ 592765080.8270361
+ plastic
+ hide
+ claws
+ 1743144450
+ 1768130322.6526127
+ almost
+ -1492186307.6649282
+ skill
+ 649313855
+ mighty
+ -1267662884.562007
+ office
+ 203544461.2928307
+ said
+ -227352637
+ -569892105.4462306
+ 136340453
+ -1294704440.465119
+ -1803509669
+ milk
+ 1783419013
+ coal
+ clothing
+ morning
+ 126586788.92366171
+ using
+ 296727124.15577006
+ 698696303.9103653
+ any
+ forget
+ 289042142.80123925
+ 394746251
+ steep
+ 38303075.499222755
+ brass
+ 1830078583
+ produce
+ -771395951.1078265
+ -2042223519.543579
+ -426755981.1647382
+ -870357467.5473199
+ -1662124586
+ -176957683
+ 1258256716.5363667
+ whole
+ 660330798
+ anything
+ three
+ -1435612615
+ 2062787204.1024718
+ -1524984512
+ when
+ 157619751.87516475
+ age
+ silence
+ operation
+ 1711641936
+ -1659944664
+ seeing
+ 49545960.71279144
+ further
+ -695906438.3315275
+ -770122338
+ 787772368.2162037
+
+ magnet
+ -2079175297
+ -1342278766.5145783
+ must
+ 7631606
+ again
+ -563579137.6120164
+ bar
+ meat
+ -144971527
+ 1174521106.8503342
+ climate
+ decide
+ 1975726049.513473
+ 526515423
+ 469981026
+ 951827094
+ process
+ 1124305038.6964388
+ -847956241.2078195
+ -407036059
+ effect
+ physical
+ 1246754322
+ 1211679752
+ 994410363.5255353
+ -141425665
+ -1547195552
+ 743068433
+ 59353078
+ especially
+ 800566897
+ third
+ its
+ -1710472819.4934978
+ both
+ 580966617
+ -600236647
+ 728785095
+ back
+ were
+ huge
+ -255284696
+ lift
+ ocean
+ -666099074
+ -498868181.1243937
+ 436722262
+ -732625578.3602326
+ return
+ -206942646.86864352
+ -1859303119
+ birds
+ 561265871.6079533
+ 1167898337
+ task
+ refused
+ -1629837223
+ flew
+ -180958952.7524917
+ 1620685226
+ -1924675984
+ affect
+ 950420658.4553981
+ -642469440.1103938
+ shot
+ film
+ mail
+ furniture
+ pleasant
+ discovery
+ -901829802.3289065
+ hospital
+ 1198064411.0458071
+ path
+ 1180988527.140988
+ football
+ student
+ -1552947570
+ won
+ 990031349.1258047
+ hour
+ -1258145336
+ 1986082576.1166036
+ 557087664.4769039
+ -662661687.4988682
+ 275852357
+ composition
+ measure
+ wrapped
+ jump
+ stick
+ 1086065707
+ 1013610450
+ -716850877.5599711
+ 2122110996.733401
+ chicken
+ 487805118
+ -2132058569.9239058
+ -890412484.5666134
+ adult
+ hour
+ image
+ whistle
+ -1643126003
+ gently
+ connected
+ 163259605
+ -496300495
+ -454949462
+ 882426119.6188514
+ -325692877.5229137
+ 461989077.3889797
+ cowboy
+ -1557342991.0958502
+ 250221470
+ 1058596958
+ though
+ right
+ cut
+ immediately
+ -1313583711.6152802
+ -586268750
+ interest
+ gave
+ -1908469238
+ -2056855632.6119552
+ -1711624510.6887927
+ mad
+ 401624863
+ 755922595
+ 562696083
+ -980668038.3897276
+ -732690509.9915614
+ manner
+ hung
+ were
+
+ 27533749.613889933
+ -545650022
+ society
+ nose
+ 1811525159
+ 954710689
+ -1172950358
+ street
+ -734325886
+ planned
+ 1105576277.5606291
+ floating
+ swim
+ 477503599.66002464
+ 1108607441.1688864
+ arm
+ basis
+ 1630681657.981659
+ wool
+ 176246900
+ flow
+ pony
+ try
+ -440848572.53439426
+ student
+ 865562245.2366338
+ shut
+ -535886315.4454045
+ 293868986.0001421
+ highest
+ -683362694.5266016
+ 112416504
+ terrible
+ sheep
+ slept
+ 1434479661
+ rubbed
+ 1823209339
+ -646826025.5290451
+ -1763042862.9769852
+ mental
+ wood
+ -167399108
+ -1761609084.9279025
+ hardly
+ silver
+ 51790451.74904466
+ thou
+ -442912210.02267456
+ -1137761464.132539
+ form
+ -419477471.3477006
+ -1283263439
+ car
+ melted
+ -1992769442
+ 811703285.589196
+ 552630579
+ -376250756
+ -807181033.2384744
+ 950426141.9111123
+ -29943227.427378654
+ 925485489
+ share
+ -1229420696.0573933
+ -190517568
+ -1926670200.7075052
+ bell
+ -906021588.3991783
+ 1209724080.0392227
+ 1168620668
+ 1850762671.2434244
+ correctly
+ letter
+ if
+ successful
+ drive
+ 2110285514.4173355
+ not
+ birthday
+ replied
+ seldom
+ 1402591791
+ earth
+ -585503212
+ 1312459605.655246
+ still
+ 173452064.26132822
+ -572899455.2208884
+ 1172276655.9326375
+ 62955904.795648575
+ surface
+ 1961294797.5546715
+ women
+ -41818177.26597357
+ industry
+ eye
+ -1059666817.0356605
+ -2089198637.4583118
+ 1397000423
+ -251803178
+ wrong
+ jar
+ smoke
+ thing
+ -764820039
+ doll
+ enemy
+ corn
+ -1986057114.7505434
+ wood
+ 770393272.1225951
+ 1256886478
+ 1313142795.7970848
+ show
+ addition
+ willing
+ manner
+ buffalo
+ mood
+ 768455243.0914087
+ -599396753
+ 1291372499
+ 982659776
+ top
+ 833413899.5762005
+ broke
+ -699350147
+ -654165301
+ atomic
+ during
+ -1718531921
+ -488803518.74614096
+
+ party
+ 523812821
+ list
+ engine
+ upward
+ me
+ he
+ 734339332
+ remember
+ 1900859006.930949
+ fence
+ -531085552
+ news
+ 2120413919.4551644
+ -346733110.78626084
+ 404255224.7956972
+ -1601684897
+ agree
+ 371924704.6404884
+ later
+ writing
+ visit
+ poetry
+ sudden
+ which
+ make
+ 697189298.6121564
+ 1790490970
+ touch
+ 399711596.26874685
+ over
+ acres
+ ran
+ 666109242
+ rose
+ sitting
+ 2123403956
+ solve
+ than
+ report
+ -129407435
+ unit
+ middle
+ -937328959
+ law
+ 655784673.0645051
+ 229034709
+ town
+ -1667655108.290891
+ -129891579
+ -1929240475.8978493
+ 1355568842
+ 954141870
+ daughter
+ -1997871425
+ pull
+ heart
+ 296327636
+ film
+ summer
+ twelve
+ -1394694155
+ class
+ -1083494540.495706
+ last
+ land
+ college
+ except
+ 391286088
+ -1634038303
+ -743033245.3662186
+ -837298221
+ -1168977780.2280397
+ 281564376.85532737
+ little
+ -1604375919
+ 1033212997.1107619
+ -48399865.72949815
+ -948183831
+ -241302993.48748899
+ -1079994996
+ track
+ -509062229
+ 1005951247
+ -1034885489
+
+ 707759097
+ 90920284
+ 1016216164
+ uncle
+ 721451031.6364658
+ -505515865
+ blind
+ zoo
+ rabbit
+ hung
+ -1227766423
+
+ 369189150
+ 1346125987.3450274
+ been
+ chest
+ -2042331863.690857
+ 396630539
+ pack
+ who
+ like
+ sand
+ corner
+ star
+ 35504930
+ grass
+ pack
+ -1566280436
+ element
+ 459327272.8950136
+ answer
+ 1182020189.6583567
+
+ engine
+ draw
+ 347210656
+ flow
+ parent
+ 453577666
+ 2023101757
+ 487446932
+ wing
+ 2034942593
+ 331482084
+ may
+ -1052825154
+ 1481330976
+ -599212765
+ 1565178293.800296
+ yellow
+ 871470408
+ behind
+ -875044875.8474352
+ gas
+ -893352067
+ putting
+ source
+ -1964189349
+ 475393493.3367882
+ nice
+ including
+ add
+ dropped
+ 1943067756.483048
+ chicken
+ -1173634028
+ -239683514.20119214
+ twice
+ share
+ 493651507.8423772
+ -1136696407.4478245
+ -2093413371.0009315
+ 1217839607.938854
+ -630701998
+ -752533741.9086123
+ victory
+ fear
+ blanket
+ youth
+ enough
+ -1504649217.4723477
+ gift
+ -981264847
+ tobacco
+ 657352864
+ saw
+ -1110858630
+ ourselves
+ -1070715276
+ 97068462
+ proud
+ tonight
+ level
+ 803921364
+ pie
+ 1904952370
+ -1942343875
+ -425218894
+ secret
+ -1783241581.9598217
+ tonight
+ -1442298451.248824
+ 163155185.6469984
+ business
+ spider
+ -1285779483
+ shorter
+ -1781997655.0404274
+ -1470202838
+ -1066803799
+ plenty
+ 1199760353.9411597
+ constantly
+ when
+ -732408180
+ 1572865912
+ won
+ ride
+ concerned
+ -676090810
+ -1943476340
+ 1241547210
+ lady
+ business
+ -642892512
+ atom
+ fellow
+ experience
+ plural
+ specific
+ -337424472.1080897
+ tide
+ -1137000841
+ 273150722.8677025
+ give
+ standard
+ -500568518.2671881
+
+ dance
+ -427362780
+ buried
+ gold
+ -1890126581
+ -1616355535
+ pitch
+ gas
+ knowledge
+ 1753248186.0930066
+ -215697413
+ danger
+ live
+ 1904140941.2820504
+ nose
+ -1620040267
+ 1650500279
+ changing
+ -535602652
+ continued
+ young
+ brief
+ 44799642.290124655
+ some
+ invented
+ silence
+ pour
+ -303352502
+ society
+ jungle
+ empty
+ six
+ pupil
+ -36161373
+ 1981699994.4965842
+ -1177935431.8103957
+ point
+ 1074826134.500743
+ 1184493354.2632236
+ flower
+ 774265526.3409603
+ 889328240.4245186
+ 212398476
+ recall
+ -1766233831.9930227
+ himself
+ 1789601556.7307682
+ jack
+ -580148579.411758
+ -1142367657
+ -1223184762
+ opportunity
+ -849726457.2521739
+ -170395677.1582842
+ real
+ 1850198082
+ 1523684746
+ spell
+ -1537154440
+ 1592160757.463304
+ -670393383
+ 591842770
+ -1848863443
+ -1149960888
+ liquid
+ -1348545482
+ mice
+ likely
+ brief
+ 1683501842.9864967
+ bark
+ troops
+ -634183164.5914261
+ needed
+ cast
+ anyone
+ -904894611
+ -1969808581.2863657
+ -391000408
+ bring
+ lift
+ -511782426
+ 1428607376
+
+ youth
+ -407651606.62923837
+ -946519635
+ 380819276.7570901
+ higher
+ piece
+ measure
+ 423021838
+ 1097795657.7403033
+ molecular
+ slept
+ 1508644581.7216988
+ 1056161096.1897526
+ 1318934942
+ live
+ 1490957867.255077
+ trace
+ plastic
+ -1870452836.0876455
+ -1371859420.2444081
+ -476141635.9401381
+ 761280481.8449507
+ to
+ concerned
+ history
+ 587308059.9513996
+ action
+ -584871754
+ bright
+ 264318470.0065105
+ settlers
+ 661953045
+ sick
+ industrial
+ crop
+ well
+ from
+ 576700364.134037
+ probably
+ 652004177.1611688
+ lie
+ in
+ 980127252
+ tropical
+ draw
+ 603309883.711786
+ -1779269988
+ little
+ 246669298
+ lower
+ adjective
+ 96956785.69951105
+ or
+ glad
+ taught
+ station
+ happen
+ spin
+ shop
+ 273333092.42114186
+ changing
+ -905174505
+ -33380933.701783657
+ -571417558
+ village
+ feed
+ 1376933984
+ so
+ -1402147055
+ slip
+ post
+ thought
+ several
+ surface
+ keep
+ 294881651
+ given
+ -1573870888.9675097
+ -357513067
+ after
+ 1680694854
+ live
+ -1834858125.7875965
+ birthday
+ -1280341068
+ war
+ -529865966.23354435
+ -1597193287
+ 1204773618.3763342
+ 1638173637
+ -212996625.97838664
+ 693075406.1747789
+ -105115820
+ -96203457.12479019
+ up
+ -433905977.26057744
+ sail
+ -1181450947.0655677
+ species
+ 817672529.3913786
+ browserling
+ -1241800104
+ -1781770428
+ origin
+ selection
+ subject
+ 1371970943
+ 252946902.08536363
+ price
+ -722288164
+ 1002467509
+ -828154305.4652498
+ highway
+ likely
+ 325260066
+ -1218680315
+ -906653875.2785816
+ 256002156
+ stems
+ -412266586.3981743
+ -1869404414
+ path
+ -1200492325.4338264
+ 691551347.8518565
+ -2115937753
+ mostly
+ 827797678
+ -1981350155.9618537
+ -492619970
+ -244903265.7195015
+ -600461568.4295974
+ -1853249013
+ 356633379
+ birth
+ few
+ 1968537024
+ brush
+ -1409552840
+ slight
+
+ between
+ political
+ 339307332
+ 677348419.6148326
+ -1211657343
+ badly
+ mood
+ -1755188708
+ worse
+ -76135199.95470381
+ palace
+ slope
+ -1160170626
+ -828127797
+ paint
+ became
+ house
+ nature
+ fireplace
+ test
+ 1365140642.73892
+ shoulder
+ south
+ cry
+ number
+ whenever
+ immediately
+ meat
+ 1903296771
+ -1327762133
+ check
+ -1595518020.3885152
+ 1961906486
+ support
+ 265270145.25251746
+ -1963304394.2928755
+ while
+ harder
+ knife
+ evening
+ -1243653914.7437437
+ specific
+ -1942912537
+ -1390044144.0621347
+ -2106214333
+ -980649442
+ -621199922
+ 687306312.8998294
+ brain
+ upon
+ solution
+ doctor
+ onto
+ properly
+ coffee
+ indicate
+ -1830090300.0451007
+ slight
+ -2120346533
+ pupil
+ 83245638
+ musical
+ useful
+ -1722416174.3383439
+ gain
+ whispered
+ 568094530
+ 1118147549.327447
+ refer
+ hello
+ -1393806682.0049872
+ 1898726079
+ -1068429618.571594
+ 1504033805.168677
+ replied
+ 1244186509
+ it
+ place
+ chair
+ -437912639
+ compound
+ wind
+ 892875355.4252033
+ 793392101.9308548
+ gasoline
+ cause
+ field
+ 467906429
+ 425332267.0859661
+ studying
+ 1175331264.9738975
+
+ 1305702106.6890652
+ needle
+ here
+ yet
+ -1449825712.4415834
+ thousand
+ -2021145156.2222967
+ known
+ -587454857.6931138
+ -1172743035
+
+ doubt
+ buffalo
+ 1079154410.3040283
+ corn
+ certainly
+ letter
+ 1877917979.326503
+ -129241844
+ cry
+ instrument
+ 942629660.4895735
+ -2024451095.9412017
+ 1266959718.8887165
+ 77319639
+ -1646780480.0770304
+ mood
+ depend
+ 880069242.5123789
+ -189875474
+ 931056678
+ 443440485.31904006
+ 1741251916.4021204
+ -251879265
+ 2122606882.7065024
+ below
+ -1130204251.4601762
+ -1537642585.9483788
+ -1793059940.2101371
+ -1593727165
+ front
+ -1888679946.6928642
+ 934634537
+ -1136263791.5672953
+ 542657457
+ pressure
+ 1181886639
+ death
+ -1010391506.5376139
+ hill
+ -1252225891
+ somewhere
+ -735492707.7126269
+ 1593238374
+ -256302152
+ -1213902812.902533
+ service
+ married
+ research
+ -1053961444
+ 787250122
+ outline
+ 1911854448.581757
+ 1636062570.5906248
+ mission
+ string
+ main
+ -1345416507
+ garden
+ father
+ leaving
+ 1798353420
+ crew
+ root
+ 1016840856.4248092
+ -1635439740.2211487
+ sale
+ sell
+ 1576311113.7134368
+ -55953075
+ pile
+
+ mix
+ 612013142
+ force
+ -847775921
+ bad
+ count
+ -832781614.9189706
+ repeat
+ -546422462.8793705
+ smaller
+ -2005253340.2009795
+ steady
+ floating
+ reach
+ younger
+ military
+ -865534088.3696764
+ -479210825
+ frighten
+ village
+ recently
+ compass
+ milk
+ 2085631477
+ barn
+ 43648842.764497995
+ 2012609978
+ thousand
+ -278812237
+ -589159187
+ -1141599321
+ cutting
+ production
+ neck
+ -761211478.5698395
+ ready
+ -2013845428.6129017
+ stick
+ block
+ sudden
+ 1868661139.1792867
+ friendly
+ combine
+ 1888959691
+ 1976340131.8528533
+ -176754958
+ attempt
+ women
+ make
+ took
+ mighty
+ ice
+ 1688024920.8457024
+ area
+ -105440408.28544378
+ 1543911545
+ -1628244969.723007
+ stick
+ 1454354296.4943717
+ 1727819692
+ 916894261.2471142
+ 809027527
+ -200262195
+ -1469183114
+ oldest
+ tiny
+ -704940443
+ lamp
+ heavy
+ -1294393847.4145005
+ -1207325874
+ page
+ biggest
+ movie
+ wonder
+ week
+ -1508239353
+ 401506155.7337923
+ -1234073868
+ unhappy
+ -246207540
+ -904173831.5750127
+ letter
+ 943168398.0509
+ fact
+ -1991610777.4145768
+ percent
+ hat
+ wide
+ plus
+
+ 1207549787
+ look
+ 1553445894
+ -1162450339
+ 301160697
+ 1299918574
+ 1047919245.130125
+ 1526775020
+ branch
+ mad
+ word
+ 399454658
+ stiff
+ 113198802
+ -259977878.0153308
+ black
+ stand
+ -1916615059.6621664
+ identity
+ develop
+ ran
+ -1168146062
+ milk
+ earlier
+ 770842553.1304593
+ refer
+ -367951607
+ 1627032741
+ somewhere
+ simply
+ 1333258270.420698
+ dozen
+ build
+ because
+ leaving
+ -1525150972
+ 1013800398
+ 834687431.8090539
+ -1549260137.6285763
+ 1017894623
+ -777746737.0546668
+ sets
+ 1347527928
+ heat
+
+ cutting
+ 913442818
+ bottle
+ fair
+ pool
+ -776871629.7706833
+ strike
+ 1381695186.6196015
+ natural
+ 1631702487
+ sum
+ 1249096819
+ -1906026747
+ -1158702842.299648
+ -104876203.72789884
+ -526809850.3398192
+ solve
+ box
+ age
+ new
+ 180026481.0952351
+ 2043866282
+ element
+ 1946469993.826817
+ 72815882.8773582
+ fifteen
+ 2130631054
+ interest
+ met
+ necessary
+ duck
+ 842845783
+ -1165535370.652227
+ -826431856.7101722
+ balloon
+ coach
+ close
+ adventure
+ 233041127.88340235
+ point
+ camera
+ frequently
+ frighten
+ -2055514669.4173696
+ shall
+ -1466948077
+ second
+ chemical
+ dirty
+ 1792006088.5906417
+ heading
+ harder
+ corner
+ finest
+ -1065221826
+ 468183055
+ -1625479122
+ -771418714
+ 1845941894
+ -1562044723.9852335
+ purpose
+ 1006506851.8002844
+
+ has
+ -394149106.9132011
+ -383641282
+ dream
+ flew
+ 1749541137
+ clearly
+ useful
+
+ coming
+ bottom
+ law
+ 359695344
+ write
+ whistle
+ metal
+ -924370555
+ spread
+ theory
+ trace
+ involved
+ compass
+ -1899238444
+ while
+ -530404501.03048253
+ 440210214
+ -81722825
+ -915587214
+ blue
+ sad
+ title
+ -1306294579.9527566
+ that
+ -1223053167
+ 365827403
+ 1022428706.5996413
+ back
+ word
+ try
+ -1986867652
+ connected
+ 157556880
+ harbor
+ 322826200.0005553
+ -296401589.30158496
+ unit
+ dish
+ 1020345727
+ away
+ mile
+ ancient
+ 2078790843
+
+ tube
+ peace
+ hour
+ -1436030789
+ struck
+ -1966516410.6047137
+ -1910293054.921857
+ 204827526.72404218
+ victory
+ eleven
+ anybody
+ -2121327307
+ -1550268379.3635685
+ 1755875790
+ children
+ 504347984.2555294
+ -996637709
+ -741894416
+ rush
+ -1377311770
+ indeed
+ adjective
+ 1533649853
+ 1905147779.0537972
+ 2008721623.9744377
+ -1301107242.047357
+ -1173711487.5903635
+ piece
+ 1505911306.0315633
+ steep
+ 1150962349
+ collect
+ distance
+ 225942303
+ wrapped
+ -515811475
+ lesson
+ composed
+ 1183417632
+ dear
+ -1995699456
+ -367522137
+ whispered
+ ask
+ -406753608
+ 1571449368
+ he
+ 1457939105.2055805
+ 321674243
+ specific
+ -1754130638
+ research
+ -2041923994.5722406
+ string
+ now
+ planned
+ 842274689.7596204
+ 769437001.7711165
+ sugar
+ -240232041
+ title
+ -1195851838.467094
+ beside
+ previous
+ along
+ 1683259068.857248
+ church
+ attack
+ anywhere
+ -1254887974.075488
+ tax
+ went
+ time
+ -1511149484
+ 1967937376.949639
+ southern
+ directly
+ -978090455
+ rather
+ hold
+ molecular
+ -2104217947.1864564
+ 2133385378.0673425
+ spider
+ -1400534475.3421302
+ 2125511939.6882532
+ image
+ tears
+ although
+ 267918268.26460767
+ -257814156
+ -1772487500.1292982
+ disease
+ against
+ -774377453.3862514
+ -866671679.2830467
+ -325157758
+ handle
+ syllable
+ slipped
+ agree
+ too
+ 1823601269.1723583
+ -1305585960
+
+ 2047222941
+ unknown
+ 375882459.9043708
+ town
+ say
+ wave
+ 294675730
+ to
+ toy
+ 119960076.33594179
+ grain
+ -1188520167.1851287
+ fill
+ chance
+ wolf
+ 1782205411
+ paper
+ 1623381851
+ -1097917222
+ 803907174.6210508
+ -1897744381.4130495
+ -870393823.401293
+ empty
+ -376474568
+ noted
+ classroom
+ -912558348
+ 1844634933.0582514
+ accept
+ 1303629495.0529695
+ gather
+ separate
+ put
+ 174807712.08217144
+ -1296704114
+ -1080691493
+ -1838079906
+ my
+ -1038688716
+ captain
+ 2060980707.7154438
+ industrial
+ -988681733
+ 1191539753.0992591
+ 1817910273
+ 754956668
+ horn
+ using
+ 1861513545
+ -2091194172
+ sign
+ 1723344145.7771769
+ stiff
+ -858888854.9765229
+ -264583690
+ -1500248318.056267
+ several
+ football
+ -22365146
+ 1126136590
+ -1133771621.3151739
+ 1031159962
+ fire
+ exact
+ 2024747117.052742
+ -199513966
+
+ cannot
+ primitive
+ worried
+ 1998687192
+ 827662694
+ having
+ arrive
+ -924829696.958955
+ father
+ -433595487.8002784
+ guide
+ -1408623428
+ bad
+ receive
+ -2015645399
+ 794010602
+ pipe
+ -1809969028
+ -104082816
+ talk
+ temperature
+ somewhere
+ -893892562
+ younger
+ -429305600.8440349
+ 1805530049.0947044
+ -159375594.71430326
+ -1692723732
+ log
+ -236693218.33879328
+ jump
+ star
+ fifty
+ hide
+ kept
+ hat
+ thy
+ square
+ goose
+ 1962043136.253807
+ moment
+ development
+ table
+ 1785589062.4883926
+ sum
+ zero
+ new
+ -1509520625
+ -1389099327
+ office
+ operation
+ -1028049978.20329
+ 528362603.0093343
+ 134031138.06261396
+ pilot
+ easy
+ hang
+ -1162266292
+ 1366015177.0136573
+ -590516839
+ bank
+ 1013005944.7099361
+ sick
+ course
+ low
+ 2122843783.3607242
+ 261440206
+ star
+ -1023947180.2716861
+ duty
+ 1724902210.8163207
+ married
+ due
+ 1696054923
+ -1938802421
+ clock
+ -921490291
+ voice
+ 538652735.890408
+ grew
+ solve
+ already
+ 1461695077
+ slope
+ 2027189314
+ -1320856016.4522557
+ -173699995
+ 1680156680
+ 1564305546.0597236
+ riding
+ end
+ 1612191912
+ 1556251002
+ -1326390083
+ column
+ popular
+ -542776258.3625038
+ thin
+ -653735088
+ percent
+ 172475993
+ 1977112931.115788
+ activity
+ above
+ 256889303.3750074
+ middle
+ nearer
+ chief
+ character
+ 298072614
+ adjective
+ kept
+ composed
+ -1072806131.8237581
+ 2066317571.0131636
+ pilot
+ 702621607
+ 184742519
+ dead
+ 34683251.566231966
+ -1189954856
+ cheese
+ higher
+ by
+ body
+ 2133783106
+ 896897754
+ -117393162
+ -1651543421.7202692
+ 1940943362
+ bright
+ buffalo
+ 1313991809
+ knew
+ tape
+ use
+ 1697136051.6581542
+ 1244666836.7718172
+ silent
+ six
+ 1094704859
+ motion
+ also
+ -1648845322
+ fifth
+ 805081106
+ studied
+ scene
+ doll
+ -1418780478
+ -47668200
+ 10854188
+
+ -1940629075.7281308
+ local
+ -842466448.6653724
+ pick
+ -125368239
+ 247170603
+ guess
+ bee
+ 1509168766
+ 2047171373.1647964
+ 1897056235.7628632
+ 1995715343.2488055
+ chance
+ group
+ excited
+ -1377970580
+ -588413981
+ -1692649231.218818
+ -2142176121.7356384
+ -1391595582.514805
+ wave
+ -788667501
+ children
+ beauty
+ -1558682053.9486918
+ feel
+ cage
+ stay
+ 1177641104
+ riding
+ 1522373337.7253213
+ entirely
+ school
+ -421359501
+ 1985155400.3623743
+ -1145300446.0349288
+ adult
+ 1828027806
+ 1629818816.7784956
+ have
+ smallest
+ 1862140218
+ -1863056509
+ ancient
+ further
+ changing
+ said
+ -1435921136.0201638
+ held
+ change
+ -358595825
+ 1758304735.0240822
+ double
+ deeply
+ -1172588852.8604178
+ pure
+ 363073373.07441044
+ adult
+ 742224330.5193043
+ stepped
+ cause
+ want
+ 1656859879.6554356
+ 1362239722.7871733
+ -1518649687.3394067
+ 1549024425
+ -1746650603
+ -1625090165
+ additional
+ general
+ huge
+ leader
+ oil
+ till
+ quiet
+ brought
+ coat
+ -1090596727.184232
+ chain
+ -184048288
+ -1513014443.7307582
+ income
+ 1287200829.1555247
+ listen
+ -897056763.8525791
+ -619924593
+ -1516049494.4864345
+ sheet
+ 1307028889
+ -1479807057
+ 1433372066
+ -1924298790
+ of
+ -2098871086.3619606
+ dropped
+ war
+ yard
+ 1819253315
+ 1739895678
+ object
+ -1002410916.3853121
+ -394466916
+ 991780412
+
+ 180632996.63450193
+ -1415316341.012345
+ 582855824.4208035
+ telephone
+ -77222933
+ -2049300508
+ across
+ method
+ -1673574538.3653057
+ 11321719
+ -648688113.1307344
+ breathing
+ 1743614719.6170862
+ 1681146526.1987288
+ 1254823338.848003
+ break
+ ear
+ relationship
+ to
+ kill
+ -1909511060
+ 4479019
+ -2141194083.5526283
+ 1417166689.1208122
+ -1491748460
+ 339812238
+ -339020186
+ horn
+ 1973672977.216699
+ -1641126100.0134408
+ laid
+ sitting
+ -393060790
+ 938009408.1910393
+ rising
+ cage
+ setting
+ far
+ 921554714
+ community
+ carry
+ lucky
+ tent
+ -1789926767
+ continent
+ 1869660945.1805327
+ managed
+ -660809943.9285576
+ sun
+ its
+
+ -615044980
+ paid
+ -1650660510
+ -2012429857.5760512
+ -271662584
+ surprise
+ 304093096.16268873
+ -811060157
+ 1588054298.6131763
+ chief
+ -459084188.2322662
+ -1725597176.7007403
+ -594266184
+ frighten
+ 315023407
+ 276652592
+ 1559098054.1156178
+ 963489151
+ -1724552660.3994462
+ -704948277.2447212
+ -338036645
+ certainly
+ drove
+ 1190994958.53436
+ average
+ up
+ pleasant
+
+ -1659234076
+ worth
+ double
+ limited
+ 710104364
+ 978942386
+ pencil
+ -891554687.903477
+ -476804457.14784503
+ typical
+ lost
+ 409437603.67425823
+ brass
+ women
+ actual
+ 917400598
+ climate
+ struggle
+ practice
+ -624876480.6847119
+ seldom
+ policeman
+ -251370072
+ -1668747040
+ -1768626199
+ globe
+ 60582098.89307833
+ personal
+ 1822366978
+ wheat
+ radio
+ -400644770
+ 587797310
+ work
+ -2041714632.485795
+ -1471657621.1269248
+ doctor
+ -530370271.9012618
+ way
+ 171700251.52236557
+ printed
+ 2048223725
+ -1216851559
+
+ -1302134536
+ 801295561
+ 871946941
+ break
+ tune
+ instant
+ 1213917033
+ -306780709.7759466
+ -2023287067.342214
+ began
+ shaking
+ -2124672806.5212507
+ sold
+ fresh
+ 110352280.98097324
+ solid
+ 561422846.0293458
+ -760361034.5464599
+ 1408834725.7865188
+ 363929249.4206283
+ 88559049.46285152
+ -190382341.98435497
+ press
+ voyage
+ walk
+ -895626990.75458
+ 1311756294.127383
+ mother
+ -747196228
+ particular
+ factory
+ -601884124
+ table
+ needle
+ half
+ include
+ eager
+ -1687541670.682532
+ tone
+ fly
+ metal
+ honor
+ income
+ -961980347
+ had
+ special
+ instant
+ 1613604649
+ close
+ -645930797.1466916
+ 1409895305.8927627
+ 1198997542
+ -2023248639.0443766
+ 232019824.6748693
+ -954064486.454622
+ 1762758530
+ successful
+ 2143213492
+ -1286867686.0398717
+ parts
+ 2061579960
+ no
+ -63958021.409356356
+ 1906794700
+ 1295811226.3840744
+ 716041738
+ -1552992845.7244825
+ be
+ 894123766.3292089
+ -1736089855
+ 523481920.1869228
+ 29822315
+ join
+ different
+ tube
+ -103408790.3917017
+ individual
+ -1826867852.150736
+ 1848739887
+ tank
+ 1052053133
+ complete
+ let
+ -1465901970
+ burn
+ 1372558543.979003
+ 1283055056.6899428
+ to
+ -963267229.161216
+ 343707802
+ 1844813405
+ 999864349
+ stock
+ -999353663
+ -1126145098
+ -1739106777
+ door
+ -281702197.7699084
+ -2109432492
+ native
+ 1704433212.0252242
+ 1634393000
+ active
+ -724407243
+ 1999952692.320136
+ 1764988094
+ film
+ skin
+ tone
+ who
+ brave
+ 36479733.83391023
+ whether
+ -569521896
+ 2082625359
+ 1157747482
+ leaving
+ listen
+ 1625762115
+ 346645797.7066691
+ 345866279
+ specific
+ -515839218.4076104
+ 1529942421
+ voyage
+ once
+ board
+ warm
+ direct
+ further
+ -2003967942
+ -1330532181.110676
+ correct
+ 1527802813
+ -1679656118
+ swim
+ cool
+ element
+ -2010995872.065183
+ 214042233
+ fire
+ interior
+ -1065350837.7874906
+ -949724212
+ -632687075
+ -673755923.9942629
+ until
+ shirt
+ poem
+ 1932546009.6207108
+ 1181623514
+ 1420261590.8412178
+ 2112501401
+ 2003622111.399161
+ specific
+ engine
+ 765367323
+ -1706466295.173272
+ -187665615
+ angle
+ -919624419
+ hidden
+ -1610994273
+ 493222316.0583093
+ hurried
+ replace
+ -1909273310
+ bent
+ quarter
+ 1996974045.906778
+ practical
+ 129326413.67903423
+ path
+ press
+ plant
+ he
+ 702496679.5523467
+ cry
+ food
+ 1547259050.6801705
+ warn
+ check
+ 575418361.5506244
+ 1579903957.1266606
+ 1831172310
+ -1512926585.6992009
+ 416577095
+ won
+ 1246899007.8562887
+ month
+ 1548235607
+ diameter
+ 1903228572
+ signal
+ beautiful
+ -1954697946
+ part
+ how
+ blue
+ -1123546990.2813365
+ -254030964
+ press
+ -1360505605.6470184
+ wrote
+ 346814211.4024451
+ nation
+ -689625989.7731266
+ never
+ 1472497515
+ situation
+ tube
+ -195861466
+ list
+ 1939860156
+ younger
+ lower
+ building
+ 673931584
+ drove
+ 1246971049
+ to
+ shout
+ 1391090322
+ -1595835716
+
+ 1675966293.7589335
+ moment
+ -623522603.7484148
+ size
+ -969824810.2235193
+ -940701334.1386724
+ danger
+ -1692206088
+ -1980994074.3879054
+ hay
+ positive
+ 981364138
+ 948801826
+ -449247821
+ opposite
+ correct
+ sun
+ alone
+ 128760264
+ salt
+ cage
+ -694089838
+ am
+ -2019462131
+ star
+ airplane
+ whatever
+ tide
+ drink
+ opposite
+ -577752129
+ name
+ warm
+ 100756727
+ -1858240685
+ 425268961
+ -1308731171.3121557
+ 1329768945.5410886
+ major
+ bean
+ understanding
+ zero
+ coast
+ -1953759847.0213873
+ rays
+ -1833129295.9807484
+ pony
+ -147243248.3679304
+ 1394168756
+ friend
+ shape
+ -1316403555
+ 5109123.926436901
+ -1890210692.8618941
+ 439123173.89769626
+ -1460718122.6940432
+ indeed
+ silent
+ frighten
+ -1022134057
+ -1673302411
+ difference
+ 1005859068
+ volume
+ thin
+ before
+ solution
+ sure
+ vote
+ she
+ suppose
+ -119040788
+ -1381708941.938429
+ 334188051
+ 1895522256.8090324
+ -101813842.4282999
+ globe
+ act
+ about
+ -269303875
+ two
+ even
+ yellow
+ 71366372
+ -713129096
+ -1228115988.810944
+ 539958143.0012872
+ simplest
+ longer
+ 179514359
+ 1035894523
+ 177519237.3736937
+ army
+ -1108472875
+ 1485376102
+ world
+ sum
+ hole
+ 1626010065.0781105
+ 271533179
+ 1844653723.6282756
+ 2136105748.472584
+ onto
+ able
+ eventually
+ claws
+ pencil
+ -1129736912
+ -968578941.8167822
+ -479928392.5609968
+ held
+ entirely
+ half
+ also
+ 264500086.60346746
+ -111059968
+ over
+ -697954325
+ -1138606618.5183907
+ -510576358.4904053
+ 191875599.26680994
+ generally
+ common
+ -2073276564.7009304
+ announced
+ -848204316.120929
+ under
+ -1501745987.7821615
+ generally
+ -1091903602
+ -1924949441
+ stood
+ 125194714
+ -276454676
+ -1154279465.9543662
+ 1635406898
+ -1414981276.640713
+ watch
+ afraid
+ held
+ -1470034877
+ 46786200
+ plenty
+ queen
+ 488088823.9191272
+ anything
+ worse
+ widely
+ sick
+ class
+ -559959631.6449542
+ 1301883528.4234505
+ 74251898
+ -189142222.92139006
+ 508527513
+ -1487274548.9519918
+ 105482420
+ 2127064897
+ 1517875578
+ orbit
+ interest
+ typical
+ make
+ trade
+ nearer
+ wore
+ -1662539818
+ 1092333585
+ guide
+ atom
+ 863061391
+ easily
+ section
+ further
+ -370449665
+ throat
+ whenever
+ -595213558
+ form
+ dance
+ 230697511
+ underline
+ -1691281129
+ furniture
+ family
+ -1509023850
+ -692176668.5407898
+ three
+ kitchen
+ correctly
+ -260696415.75214863
+ 1391000221.1338227
+ belt
+ 1626789573
+ 1078546696.6413443
+ -1184945208
+ future
+ 1445628288.1707644
+ 163615492
+ prove
+ 1152517408
+ whom
+ moon
+ three
+ -1125165134.3912702
+ 1067361068.1656978
+ may
+ 905195626.0584693
+ drew
+ 1264744156.0751245
+ collect
+ handle
+ quickly
+ thick
+ 1978741943.3426602
+ 105242431.91546845
+ apart
+ -322382000.83086157
+ -465098569.4657428
+ offer
+ rod
+ -1035816441
+
+ -366058222.1971123
+ cover
+
+ 159783121.8218317
+ sugar
+ 656747533
+ higher
+ reason
+ -1871571554
+ never
+ -617505644.0950692
+ 58811567.43633914
+ race
+ somebody
+ 407453624
+ anything
+ exact
+ difficulty
+ 638804972.461272
+ constantly
+ 1873870464
+ result
+ fellow
+ glad
+ hidden
+ 518293758.591552
+ arrange
+ -217539837
+ 2087093116.818205
+ equator
+ nails
+ 1997710364
+ steel
+ 1711057657.975843
+ secret
+ after
+ -1720765819
+ military
+ faster
+ snow
+ -2007474318.3632963
+ 1619284677
+ jet
+
+ -179732043
+ top
+ 1151422590.9349444
+ column
+ -999743389
+ -1332908996.1877441
+ police
+ ought
+ 528446718
+ -855317828.7509761
+ wire
+ comfortable
+ failed
+ yellow
+ former
+ -1530672394.5946448
+ -828931439.5400579
+ leaving
+ -1982338628.2402143
+ -1765176507
+ land
+ serious
+ construction
+ 270291817.23676443
+ -958549584
+ 760793947
+ 945606180.0385284
+ 280807775
+ measure
+ -236566125.41718912
+ 683378496
+ 1640490781
+ involved
+ peace
+ blue
+ examine
+ -635899286
+ -333007099.8428793
+ 1683987229.936021
+ 219296019.62509394
+ troops
+ distant
+ if
+ -1864023485.2937918
+ sun
+ 1849237370
+ 128045849.83271694
+ 1748609.848911047
+ room
+ break
+ gave
+ his
+ -1304908307
+ 1322437721.4801981
+ generally
+ 2145771752
+ 1834347741.9685411
+ 440700118
+ -1141197491
+ 1481367318.9219842
+ 2135410503.5102258
+ step
+ together
+ east
+ 40840958.96376324
+ 1698417632.3784494
+ mine
+ settle
+ directly
+ 1091367113
+ locate
+ giving
+ attack
+ 1804268140
+ -1588248849
+ 1215445046.9521935
+ golden
+ 1632705591
+ -1290099877.1682155
+ 473844659.50272036
+ 1307063484
+ -1842377738.5966125
+ either
+ rice
+ 972266780
+ bound
+ usually
+ 442076139.01360536
+ -1481192949.9389582
+ straw
+ he
+ along
+ congress
+ wire
+ cave
+ 1590904233.0431917
+ men
+ luck
+ 347092253
+ -675480273
+ 1085153503
+ 991126009.2111695
+ above
+ mice
+ -1636115230.332646
+ -1962535833.3336294
+ these
+ send
+ slave
+ book
+ colony
+ newspaper
+ motion
+ hungry
+ 1581619994.689709
+ badly
+ crop
+ audience
+ -1760031404
+ river
+ -1104863082
+ -774765398
+ 672036093
+ -939194818.721772
+ section
+ stems
+ children
+ 1626999126
+ 479527675
+ 54690204
+ -1898066128
+ trap
+ eleven
+ -2067488442
+ 668977449
+ rod
+ three
+ where
+ sit
+ close
+ noun
+ crew
+ -2102269059
+ -2013517514.1248636
+ -1380429285.5416622
+ order
+ 559931249.5497239
+ appearance
+ rush
+ 2006268797
+ -1895311020
+ -1330710193.5758893
+ took
+ -328530797.67126083
+ -519323732
+ lamp
+ -303119882.99912024
+ 1477803844
+ proud
+ -790580309.7819612
+ -1105737646
+ 478007789
+ 1908004106
+ 1676979041.3031301
+ little
+ curve
+ -1767723743.1725335
+ directly
+ -2036956981.7264807
+ map
+ 1331654758
+ closer
+
+ -248176752.8197248
+ -2093913472
+ impossible
+ driven
+ why
+ chest
+ -784159742
+ one
+ although
+ live
+ 472996110
+ -1717359377.2466733
+ another
+ traffic
+ butter
+ caught
+ 646361156.207032
+ -1876849841.0597517
+ together
+ poem
+ warm
+ 1456444785
+ several
+ 203927471
+ 323275427.21822524
+ 1245629039
+ tonight
+ -1907249372
+ likely
+ -1005761199
+ full
+ 1313353621.2629158
+ through
+ breeze
+ blank
+ mail
+ doubt
+ -341896113
+ -1790606222.9603121
+ 652844564.4117706
+ 1428901163
+ 1086194717.5313923
+ -1596905974.9275467
+ 330871518
+ noun
+ -710158893
+ anywhere
+ 13023215
+ arrangement
+ fruit
+ -856017306.1728094
+ chart
+ -1638428240.496147
+ come
+ -2131723435
+ worker
+ 483209294.4959991
+ 277750997
+ -1669966003.3463457
+ 2111632840
+ 605283372.1538458
+ path
+ wet
+ 1922783091.9786391
+ 607219340.0953014
+ compass
+ -303758143
+ -2068861993.49971
+ 2065531870.808889
+ nobody
+ -1400967010
+ 2137089408.1151786
+ -1695579691.9441729
+ -397905649
+ about
+ 1427955224.0857525
+ -72636788
+ -734532088.6421802
+ lunch
+ tongue
+ -430173912
+ -352710465
+ both
+ iron
+ fox
+ 477832601
+ 110270414
+ further
+ storm
+ classroom
+ been
+ 1444601933
+ 529748734
+ 5073692.098479748
+ missing
+ -254871001
+ combination
+ village
+ were
+ -451765387.5561824
+ leaving
+ floor
+ yard
+ -772870520.3726437
+ 58999793
+ that
+ 1076086528.912683
+ our
+ -1628989749
+ length
+ morning
+ hay
+ 469073053
+ selection
+ fellow
+ 376513375.08100486
+ -1386459928.5343819
+ 2084187407.9563768
+ greater
+ cowboy
+ 1919205600.137405
+ ago
+ 36573755.7281611
+ 199980417.57620406
+ -1554773960
+ somehow
+ anybody
+ -1311590019.6607783
+ -322512407.8722
+ rich |
+ probably
+ 55473028.35476899
+ piano
+ necessary
+ rough
+ view
+ kill
+ -982165504.3456886
+ century
+ -1449264662.067473
+ -104161354.083879
+ frame
+ -1290877133.567571
+ far
+ 271768062.68651366
+ 1944879412
+ 995064536
+ failed
+ 1901379856.8134437
+ 459253485
+ -1974568085
+ -1044984106
+ 425826136.75113344
+ -1231387890.3633947
+ nobody
+ 1887528909
+ out
+ -2046988485
+ short
+ -39978572
+ -1656631856.2986884
+ 320395831.20724845
+ 461866014.39406705
+ 732539837.9899311
+ 1511081777
+ 856467340.1461115
+ -1462864162
+ 1139619850
+ vote
+ change
+ 1877614374.6930778
+ perfectly
+ carried
+ 2104390003.5764859
+ -1943836264.365154
+ -537014457.9961147
+ 563589180.6327126
+ indeed
+ 2015322255
+ joined
+ kind
+ attempt
+ person
+ way
+ -1868805999.1306498
+ 34664842.51134205
+ explore
+ 820097647
+ taken
+ exact
+ 1053809618
+ -1471090925.1678429
+
+ lips
+ block
+ difference
+ 1217115616
+ -1118552445
+ pattern
+ 1780200084
+ -336142788.10599756
+ off
+ opposite
+ swimming
+ -1946360618.8471427
+ 73225745
+ -236063824
+ -865008001.2626011
+ policeman
+ 1982217954.685023
+ -1956835394
+ -902634846.1770029
+ important
+ feed
+ -881290660.7291007
+ studied
+ 1694677748.485627
+ in
+ -1475889673
+ carried
+
+ laugh
+ -1285646896.5173476
+ follow
+ 1166083928.0893948
+ event
+ 589406846
+ piano
+ -1786182239
+ fine
+ begun
+ tail
+ 89550531.04528522
+ chance
+ pain
+ thousand
+ dull
+ form
+ -326463677.6481168
+ -1193702189.920204
+ 2020449924
+ -692340732.0788283
+ seems
+ 454677104
+ -135656029
+ modern
+ necessary
+ -378134691.0760803
+ ice
+ at
+ 2076171657
+ rough
+ -1146684378
+ 1184529966.152565
+ missing
+ -1546721277
+ quite
+ 1808296647.4636393
+ 355668290.3360605
+ wish
+ -235331184.32139778
+ -225424112.7204144
+ -1047257243.7974234
+ -13723440
+ low
+ -24300786.587556124
+ weak
+ tune
+ -303846089
+ -578526251.934525
+ -234915687
+ home
+ when
+ 1438845957
+ all
+ else
+ -1444973310
+ 1552931406
+ 1375281504.9337802
+ -768185537
+ whatever
+ -1031718627.7856789
+ 202278533
+ date
+ -1332160883
+ -1293698138.6050756
+ -573314065.5655141
+ 1688957701.3240383
+ 1177430130.057653
+ nearest
+ -2067071609
+ magic
+ were
+ private
+ scientific
+ -524702538.50868917
+ 899414064.5203707
+ word
+ college
+ -446991277
+ general
+ meat
+ making
+ -1820588052.923399
+ -2096079531.172236
+ 2049741090
+ signal
+ mouse
+ nearer
+ 2110594905.083261
+ story
+ had
+ capital
+ 1714615766
+ warn
+ tie
+ -943428955
+ tried
+ such
+ 514355295.907964
+ 1610989766
+ saw
+ 1456809944.100019
+ taken
+ handsome
+ -191863273.64996767
+ -529239524.0475459
+ 1782065519
+ fifteen
+ 1845344961
+ oldest
+ lot
+ -954119343.9500651
+ 549460090.5957365
+ toward
+ love
+ 330709112
+ summer |
+ between
+ carried
+ send
+ bend
+ 1059218759.3680158
+ cross
+ -805794428
+ disappear
+ observe
+ brave
+ 1118337886.914227
+ per
+ type
+ tea
+ moment
+ community
+ 58151239.89634633
+ diameter
+ wild
+ younger
+ apple
+ -1406908278
+ serve
+ soap
+ upward
+ wealth
+ fuel
+ fewer
+ real
+ 1427264835.1614676
+ -802263453
+ dance
+ 1349746421
+ -1122747099
+ oxygen
+ flame
+ -1321531341.0221376
+ wolf
+ 39267264
+ 301218435
+ -897815511.7340839
+ -112712977
+ 1201517037
+ 286032000.1165247
+ especially
+ wire
+ as
+ apple
+ 635453235.3161371
+ 1141442982
+ customs
+ flat
+ taught
+ -2050496054.5998776
+ vertical
+ local
+ relationship
+ separate
+ 17416303.96604967
+ evening
+ -195295365.1010115
+ ordinary
+ -1758468826
+ -783937259.1262009
+ arrange
+ left
+ well
+ kids
+ 1224155406
+ waste
+ weigh
+ 1491426650.3589733
+ city
+ machine
+ 376584795.86233616
+ effect
+ connected
+ 1383723113.8468504
+ -1132146438.4629822
+ -1326205875.6269884
+ seat
+ identity
+ -1971162083
+ also
+ disease
+ worried
+ -1196025682.8696518
+ -1438212018.5755868
+ 893698368.3201747
+ example
+ wore
+ ahead
+ flame
+ harbor
+ split
+ solid
+ -1158844609
+ -2048119609.9728656
+ -143318868.26391912
+ -1666170709
+ -321052535
+ 96500956
+ -1525421739.524479
+ trade
+ -876743485.7943509
+ day
+ -1318547704.460831
+ ordinary
+
+ 1403059708
+ student
+ -254868604
+ band
+ 1215514848.2335289
+ -335554923
+ rain
+ -1096213973
+ bright
+ baseball
+ vast
+ -1463463268
+ atomic
+ 2035780827.886441
+ -1966707480
+ coming
+ -520326328
+ -467384592
+ -2139432869.6862836
+ -233210511.9576416
+ 215363866.14520717
+ facing
+ move
+ minerals
+ 2050585059
+ 1084821618.9729624
+ -1300265008
+ 1475064670.8013349
+ 716791486.7481115
+ dug
+ prevent
+ studying
+ mood
+ beauty
+ 413838666.65452504
+ honor
+ account
+ 214080080.07368445
+ furniture
+ -460002660
+ mark
+ told
+ -1775353064
+ newspaper
+ -1910290788.7202988
+ -1551727114.9482381
+ 1067106007
+ 1655736574
+ cost
+ image
+ or
+ give
+ careful
+ 511123045
+ 846062821
+ 695516286.5827963
+ -1169510833
+ -1769272334.1744452
+ 1663809634.08225
+ almost
+ treated
+ require
+ 1584473578
+ 488896617.8980222
+ 909129770.7197728
+ either
+ -1534222858
+ 2025229334.8832057
+ watch
+ whose
+ simplest
+ student
+ main
+ 433194265
+ 207662391.76564097
+ parent
+ -1262645169
+ 689508603
+ thin
+ 863914908.1508965
+ cheese
+ -628981056.2686045
+ 1031319439.826081
+ meant
+ most
+ -95461700.00509953
+ -788523876.6377652
+ -549070727
+ thrown
+ -12126607
+ like
+ -998604792
+ natural
+ one
+ -1867574006
+ -1554314268
+ 546791979
+ quickly
+ 928092246.4354632
+ your
+ -1690130782
+ 1590056973.845066
+ -1970399102.0809252
+ me
+ 1060532607
+ 965636332
+ -2083161136
+ cast
+ scene
+ -1375936398
+ honor
+ troops
+ simplest
+ 1549294935
+ 1974498276.9417303
+ 1388528777.9681203
+ -802130850
+ discussion
+ threw
+ 198416454
+ 1036097028.3502891
+ -981064083
+ -1468933042
+ 900706812
+ 464753509.5626633
+ 1637554165
+ -475774153
+ us
+ then
+ 45825891.73521495
+ having
+ orbit
+ industry
+ -567116477.5792897
+ 928641012
+ worth
+ pie
+ slip
+ -1495821967
+ -441776621
+ -450165116
+ maybe
+ baby
+ -1407356778.638936
+ guard
+
+ pile
+ few
+ 871445627.0288882
+ 24116845
+ -60257076.59929824
+ -278705325.2820666
+ gray
+ account
+ tide
+ 456770785
+ 1765349886
+ parent
+ -1827236838.764348
+ thy
+ -152814362
+ -2085484642.9236093
+ object
+ 116336525
+ picture
+ 1660820510.3603497
+ equal
+ -1756543647
+ 257980749.5349877
+ sand
+ aid
+ push
+ circle
+ -1835274919
+ -1349826686
+ population
+ trouble
+ pig
+ -1019242473
+ 522968189.3309562
+ 1506356439.011745
+ shake
+ addition
+ 1492712803
+ -1562647727
+ 1838414336.1012545
+ -1840646933
+ -733701959.5546577
+ development
+ course
+ -1358362598
+ different
+ tightly
+ somebody
+ -1539827717
+ 1474740152.101759
+ -931108612
+ wealth
+ neck
+ 1365120132.4931593
+ 372989321
+ fight
+ powder
+ excellent
+ pony
+ run
+ little
+ leg
+ neck
+ -586135401.5160515
+ 407379882
+ store
+ -671333080
+ raw
+ shake
+ -138226709
+ massage
+ -1799824629.3536928
+ information
+ 1447943282
+ -262370375.61056852
+ 1409023352
+ few
+ fighting
+ fellow
+
+"""
+
+parse_inputs = %{
+ "tiny (minimal)" => xml_tiny,
+ "big_and_nested" => big_and_nested,
+ "lots_of_nesting" => lots_of_nesting,
+ "deep nesting (180)" => xml_deep,
+ "wide siblings (400 leaves)" => xml_wide,
+ "attr-heavy (120 attrs)" => xml_attr_heavy,
+ "big CDATA" => xml_big_cdata,
+ "long PCDATA + entities" => xml_long_pcdata,
+ "xmpp-like stanza" => xml_xmpp_like,
+ "repetitive items (80)" => xml_repetitive,
+ "whitespacey" => xml_whitespacey
+}
+
+to_binary_inputs =
+ Enum.map(
+ parse_inputs,
+ fn {name, test} ->
+ {:ok, binary} = :exml.parse(test)
+ {name, binary}
+ end
+ )
+
+IO.puts("== parse/1 ==\n")
+
+Benchee.run(
+ %{
+ "parse/1 exml" => fn xml ->
+ {:ok, _} = :exml.parse(xml)
+ end
+ },
+ inputs: parse_inputs,
+ time: bench_time,
+ warmup: bench_warmup,
+ memory_time: 2,
+ formatters: [{Benchee.Formatters.Console, extended_statistics: true}]
+)
+
+IO.puts("== to_binary/2 ==\n")
+
+Benchee.run(
+ %{
+ "to_binary/2 exml" => fn xml ->
+ _ = :exml.to_binary(xml)
+ end
+ },
+ inputs: to_binary_inputs,
+ time: bench_time,
+ warmup: bench_warmup,
+ memory_time: 2,
+ formatters: [{Benchee.Formatters.Console, extended_statistics: true}]
+)